cancel
Showing results for 
Search instead for 
Did you mean: 

Configure web service + logical port

Former Member
0 Kudos

Hi guys!

I have to consume a web service which is installed on a remote System (MS SQL Server). After some issues (activate services in SICF, configure firewall) I was able to generate the client proxy in SE80. For doing this I used the URL to the WSDL file. You can find the WSDL file attached to this post.

Right after this I created the Logical port using Transaction SOAMANAGER (as LPCONFIG is obsolete). I wanted to generate the Logical port based on the WSDL again so I used the the same URL as in SE80. But this time I receive an error (I faced this error many times in different situations in SOAMANAGER too).

Error: HTTP: Error in Interface for Management of HTTP destinations

So I uploaded the WSDL by hand and I coudl generate the logical point. I can find my connection in SM59 (interessting: even if I received the error before SOAMANAGER creates a Connection in SM59 but I don't find it in SOAMANAGER).

When I perform a Connection test for my SM59 Connection (created via SOAMANAGER using the Manual upload of the WSDL file) I receive an error: HTTP/1.1 400 Bad Request

I have tested my Client proxy in SE80 using the same Logical point. As expected I receive here an error too. The error message is not very helpful to me (I have implemented the note 1424747).

Same error I reveive in my test report where I consume the web service.

Does anybody has any idea about the problem? Could it be that a Service in SICF is missing so that the Logical point is not generated proper? Could it be that the firewall still blocks something? Or is it an error that occurs in the remote System and I simply don't reveive a clear error message?

Thanks a lot and kind regards,

Florian

Accepted Solutions (0)

Answers (2)

Answers (2)

pradeep_grandhi
Active Participant
0 Kudos

Hi Florean,

Try to check if the issue is with the other system? Check the Web Service link in any of the Web service testing tools like SOAP UI, testmaker, etc. If any error occurs in the Web Service testing tool, then inform them that there is a problem from their end.

Regards,

Pradeep

vikas2
Active Participant
0 Kudos

Before doing all the checks in ABAP, perhaps it's a good idea to do a quick test with SOPAUI just to check there're no issues with the service itself. This will help to clear any network / service issues .

Former Member
0 Kudos

Hi Vikas!

The Problem is that I can't perform the tests with with soapUI to figure out Network issues as I am not in the same network. SAP and the MS SQL Server as in different networks. Bith are not accessible from outside. I have to Access to SAP using a remote Desktop which is again in another network. And last but not least I don't have the permissions to install soapUI.

Kind regards,

Florian

PatrickDean
Participant
0 Kudos

A good way of checking the connection between the SAP Box and the target Service Box is to use the CL_HTTP_CLIENT class. This basically acts like a browser / web explorer from the SAP Box itself.

Using that client you can prove that SAP can at least see the service it's supposed to be communicating with...

Viewing the content of the "return" variable in the HTML viewer can yield interesting results....

lv_url = 'http://blah-blah-blah/EventLog.asmx'.

* Create Client

   call method cl_http_client=>create_by_url

     exporting

       url    = lv_url

     importing

       client = http_client.

* Send

   call method http_client->send

     exceptions

       http_communication_failure = 1

       http_invalid_state         = 2.

* Receive

   call method http_client->receive

     exceptions

       http_communication_failure = 1

       http_invalid_state         = 2

       http_processing_failed     = 3.

   if sy-subrc ne 0.

     http_client->response->get_status(

       importing

         code   = lv_ret_code

         reason = lv_err_string

            ).

     message lv_err_string type 'I'.

   endif.

* Now we have the response , parse , display

* do what you like

   return = http_client->response->get_cdata( ).

   write: return.