Webservice: client proxy chokes on (any) reply

I have made sure that:
- there is a complete reproduction scenario
- the webservices are online!
- the wsdls and eclipse project with proxies and test program calling the proxies are attached
I can't find any references (SDN/google, posted on SDN) which help me with the errors my proxies (generated in Netweaver Developer Studio) keep getting when reading/processing the response message. Therefore I would be grateful for any pointer which helps me solve/workaround this problem.
PROBLEM:
Netweaver Developer Studio generated proxies choke when reading/processing our reply:
     at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.getResponseDocument(MimeHttpBinding.java:1077)
     at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.call(MimeHttpBinding.java:1432)
     at com.quintiq.WSNullPointerExceptionProblem.Foo.FooBindingStub.foo(FooBindingStub.java:87)
FACTS & MY ANALYSIS
- We are using our own SOAP implementation, just so you know
- I tried all kinds of webservice signatures (void foo(void), string foo(string) etc...) All give the same problem
- Error messages work fine! (Our errormessage is read and perfectly converted into an exception)
- I ran several checkers/validators:
  - EP Web Services Checker has no problem
  - WS-I check reveals that the only problem is that we don't use UTF-8, but iso-8859-1 (I tried using UTF-8 which should be ok, same problem)
  - Mindreef SoapScope gives no problem
  - Several web based WSDL validators (also invoking the service) have no problem
- I use stateless communication (checkbox in LogicalPort configuration)
- I am using the sneak preview available for evaluation on SDN: " Sneak Preview SAP NetWeaver 04 - Full Java Edition with SAP NetWeaver Portal,  NW04 SP16 11 Apr 2006"
- I get a warning (using guidgenerator.jar removes the warning, but does not help with the real problem)
  Warning ! Protocol Implementation [com.sap.engine.services.webservices.jaxrpc.wsdl2java.features.builtin.MessageIdProtocol] could not be loaded (NoClassDefFoundError) !
  Error Message is :com/sap/guid/GUIDGeneratorFactory
REPRODUCTION
Using the workspace attached:
To call webservice Foo: run with the main supplied in class com.quintiq.WSNullPointerExceptionProblem.Foo.Test_Foo
To call webservice PCT_DUEDATE: run with the main supplied in class com.quintiq.WSNullPointerExceptionProblem.Test_PCT_DUEDATE
To call both: run with the main supplied in class Main in the default package
It takes about 5/10 minutes to generate proxies yourself and call the webservice. (Don't forget to check the "stateless communication" checkbox in the LogicalPort configuration!)
The error is always the same:
java.rmi.RemoteException: Service call exception; nested exception is:
     java.lang.NullPointerException
     at com.quintiq.WSNullPointerExceptionProblem.Foo.FooBindingStub.foo(FooBindingStub.java:99)
     at com.quintiq.WSNullPointerExceptionProblem.Foo.Test_Foo.main(Test_Foo.java:26)
     at Main.main(Main.java:20)
Caused by: java.lang.NullPointerException
     at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.getResponseDocument(MimeHttpBinding.java:1077)
     at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.call(MimeHttpBinding.java:1432)
     at com.quintiq.WSNullPointerExceptionProblem.Foo.FooBindingStub.foo(FooBindingStub.java:87)
     ... 2 more
Kind regards,
Patrick

Found the problem. We returned HTTP code 202 (Accepted) instead of 200 (OK) when the response was in the body.
Patrick

Similar Messages

  • Weblogic 8.1 Webservice Client Proxy Authentication not working

    We have a desktop console based Weblogic webservices client application that uses client stubs to establish the connection and communicate with the server where the WSDL was hosted.
    We are facing a problem in authenticating the Proxy user with valid credentials.
    We are using the following code to set the system properties and Authenticator class to authenticate the proxy user.
    //Code Segment #1
    Code:
    System.setProperty("http.proxyHost", proxyHost);System.setProperty("https.proxyHost", proxyHost);
    System.setProperty("weblogic.webservice.transport.http.proxy.host",proxyHost);
    System.setProperty("weblogic.webservice.transport.https.proxy.host",proxyHost);
    System.setProperty("http.proxyPort", proxyPort);
    System.setProperty("https.proxyPort", proxyPort);
    System.setProperty("weblogic.webservice.transport.http.proxy.port",proxyPort);
    System.setProperty("weblogic.webservice.transport.https.proxy.port",proxyPort);
    //System.setProperty("http.proxyType", "basic");
    //System.setProperty("https.proxyType", "basic");
    //System.setProperty("http.proxy.auth.type" ,"ntlm"); //This is not showing any impact
    System.setProperty("http.proxyUser", "bsil\\ashok.kumar");
    System.setProperty("https.proxyUser", "bsil\\ashok.kumar");
    System.setProperty("http.proxyPassword", " xyzddd");
    System.setProperty("https.proxyPassword", "xyzddd");
    Authenticator.setDefault(new MyAuthenticator());
    //Inner class
    public static class MyAuthenticator extends Authenticator {
    protected PasswordAuthentication getPasswordAuthentication() {
    String username = System.getProperty("http.proxyUser");
         String password = System.getProperty("http.proxyPassword");
         return new PasswordAuthentication(username, password.toCharArray());
    We are using following code initialize the stubs (Which internally opens a connection to the given endpoint base URL)
    //Code Segment #2
    Code:
    SessionService_Impl sessionService = new SessionService_Impl(getEndPointURL(SessionServicePort.class));
    port = sessionService.getSessionServicePort();
    return port;
    Using above code it always throws the following exception:
    Code:
    weblogic.webservice.tools.wsdlp.WSDLParseException: Failed to retrieve WSDL from https://apiclienttest.intralinks.com:443/webservices51/SessionService?WSDL. Please check the URL and make sure that it is a valid XML file [java.io.IOException: Proxy authenticator  failed: java.lang.ClassNotFoundException: ]
    if i replace the above code (Code Segment #2) to as bellow with Code Segment #3 then its working as expected. But we have been told that the Code Segment #2 is required as shwon above for the Weblogic ClientTimeout seconds feature so we cant replace the Code Segment #2 with Code Segment #3 since we don?t want to miss the ClientTimeout seconds feature for the application.
    //Code Segment #3
    Code:
    SessionService_Impl sessionService = new SessionService_Impl();
              SessionServicePort sessionServicePort = sessionService.getSessionServicePort();
              ((SessionServicePort_Stub) sessionServicePort)._setProperty("javax.xml.rpc.service.endpoint.address", endPointBaseURL+"SessionService");
    return sessionServicePort ;
    why the Proxy authentication is failing with the Code Segment #2 and why it is passing in case of Code Segment #3
    The endpoint base URL we are hitting is hosted on Weblogic server 9.0 (which is hosted at client side in US so it is behind our firewall).
    Is some thing more do we need to do in Authenticator class???
    Please help me if any one has worked on proxy server authenticator in java.

    We have a desktop console based Weblogic webservices client application that uses client stubs to establish the connection and communicate with the server where the WSDL was hosted.
    We are facing a problem in authenticating the Proxy user with valid credentials.
    We are using the following code to set the system properties and Authenticator class to authenticate the proxy user.
    //Code Segment #1
    Code:
    System.setProperty("http.proxyHost", proxyHost);System.setProperty("https.proxyHost", proxyHost);
    System.setProperty("weblogic.webservice.transport.http.proxy.host",proxyHost);
    System.setProperty("weblogic.webservice.transport.https.proxy.host",proxyHost);
    System.setProperty("http.proxyPort", proxyPort);
    System.setProperty("https.proxyPort", proxyPort);
    System.setProperty("weblogic.webservice.transport.http.proxy.port",proxyPort);
    System.setProperty("weblogic.webservice.transport.https.proxy.port",proxyPort);
    //System.setProperty("http.proxyType", "basic");
    //System.setProperty("https.proxyType", "basic");
    //System.setProperty("http.proxy.auth.type" ,"ntlm"); //This is not showing any impact
    System.setProperty("http.proxyUser", "bsil\\ashok.kumar");
    System.setProperty("https.proxyUser", "bsil\\ashok.kumar");
    System.setProperty("http.proxyPassword", " xyzddd");
    System.setProperty("https.proxyPassword", "xyzddd");
    Authenticator.setDefault(new MyAuthenticator());
    //Inner class
    public static class MyAuthenticator extends Authenticator {
    protected PasswordAuthentication getPasswordAuthentication() {
    String username = System.getProperty("http.proxyUser");
         String password = System.getProperty("http.proxyPassword");
         return new PasswordAuthentication(username, password.toCharArray());
    We are using following code initialize the stubs (Which internally opens a connection to the given endpoint base URL)
    //Code Segment #2
    Code:
    SessionService_Impl sessionService = new SessionService_Impl(getEndPointURL(SessionServicePort.class));
    port = sessionService.getSessionServicePort();
    return port;
    Using above code it always throws the following exception:
    Code:
    weblogic.webservice.tools.wsdlp.WSDLParseException: Failed to retrieve WSDL from https://apiclienttest.intralinks.com:443/webservices51/SessionService?WSDL. Please check the URL and make sure that it is a valid XML file [java.io.IOException: Proxy authenticator  failed: java.lang.ClassNotFoundException: ]
    if i replace the above code (Code Segment #2) to as bellow with Code Segment #3 then its working as expected. But we have been told that the Code Segment #2 is required as shwon above for the Weblogic ClientTimeout seconds feature so we cant replace the Code Segment #2 with Code Segment #3 since we don?t want to miss the ClientTimeout seconds feature for the application.
    //Code Segment #3
    Code:
    SessionService_Impl sessionService = new SessionService_Impl();
              SessionServicePort sessionServicePort = sessionService.getSessionServicePort();
              ((SessionServicePort_Stub) sessionServicePort)._setProperty("javax.xml.rpc.service.endpoint.address", endPointBaseURL+"SessionService");
    return sessionServicePort ;
    why the Proxy authentication is failing with the Code Segment #2 and why it is passing in case of Code Segment #3
    The endpoint base URL we are hitting is hosted on Weblogic server 9.0 (which is hosted at client side in US so it is behind our firewall).
    Is some thing more do we need to do in Authenticator class???
    Please help me if any one has worked on proxy server authenticator in java.

  • Create WebService - Client / Proxy in DevStudio 7.1

    Is it a known issue in DevStudio 7.1:
    1)  create WSDL file -> right click -> WebServices -> Generate Java Bean skeleton, and I see:
    "SAP Server does not support the Apache Axis Web service runtime. Choose a different server or runtime to proceed through the Web services wizard.",
       Server:  SAP Server
       WevServiceRuntime:  ApacheAxis  (no options available, except this one)
    Why here is only one option for Runtime?  How to create Skeleton?
    2)  create WSDL file -> right click -> WebServices  -> Generate Client,
    And here I don't see the warning message about Apache Axis, since:
         Server: SAP Server
         WebServiceRuntime: SAP NetWeaver  (2 options available)
    I click Next->Finish, and I got error:
       "Error: IWAB0014E: Unexpected exception occurred" 
    IWAB0014E Unexpected exception occured.
    StackTrace (see below in details):   java.lang.NullPointerException
          at com.sap.engine.interfaces.webservices.runtime.HTTPProxy.setExcludeList(HTTPProxy.java:52)
          at com.sap.ide.es.ws.consumer.jaxws.runtime.internal.consumer.impl.IDEProxyResolver.<init>(IDEProxyResolver.java:23)
          at com.sap.ide.es.ws.consumer.jaxws.runtime.internal.consumer.impl.ProxyGeneratorImpl.downloadWSDLs(ProxyGeneratorImpl.java:474)
          at com.sap.ide.es.ws.consumer.jaxws.runtime.internal.consumer.impl.ProxyGeneratorImpl.downloadWSDLs(ProxyGeneratorImpl.java:445)
          at com.sap.ide.es.ws.consumer.jaxws.runtime.internal.consumer.impl.ProxyGeneratorImpl.generateProxy(ProxyGeneratorImpl.java:220)
          at com.sap.ide.es.ws.common.core.consumer.ProxyGenerationCommand.execute(ProxyGenerationCommand.java:69)
          at org.eclipse.wst.command.internal.env.core.fragment.CommandFragmentEngine.runCommand(CommandFragmentEngine.java:413)
    What is wrong?  Configuration?

    It looks like, the situation with "Client Generation: Error" occures, if Proxy is enabled in Eclipse. If it's disabled, client is generated.
    But the first question still remains.

  • Webservice client is not working for secured service

    Hi Experts,
    Currently i am facing issue when i try to access the secured webservice,
    I used jdeveloper 11.1.2.1.0 to create the webservice client proxy and found the following error if i invoke the service,
    I am using the following code to access the service,
    URL url = new URL(".", wsdl_url);
    MyService myservice = new MyService(url, new QName("urn:drs.test.com",
    "MyService"));
    myTester = myservice .getTester();
    Map<String, Object> reqContext = ((BindingProvider) myTester ).getRequestContext();
    reqContext.put(BindingProvider.USERNAME_PROPERTY, "user name");
    reqContext.put(BindingProvider.PASSWORD_PROPERTY, "password");
    May i know the reason for this issue?
    javax.wsdl.WSDLException: WSDLException: faultCode=INVALID_WSDL: Invalid XML in source with PublicId: null: oracle.xml.parser.v2.XMLParseException: Whitespace required.
         at oracle.j2ee.ws.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:344)
         at oracle.j2ee.ws.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:294)
         at oracle.j2ee.ws.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:278)
         at oracle.jdeveloper.webservices.wsdl.CachedWSDLReader.readWSDLInternal(CachedWSDLReader.java:531)
         at oracle.jdeveloper.webservices.wsdl.CachedWSDLReader.readWSDL(CachedWSDLReader.java:484)
         at oracle.jdeveloper.webservices.wsdl.CachedWSDLReader.readWSDL(CachedWSDLReader.java:455)
         at oracle.jdevimpl.webservices.wizard.jaxrpc.common.SpecifyWsdlPanel.fetchWSDL(SpecifyWsdlPanel.java:1050)
         at oracle.jdevimpl.webservices.wizard.jaxrpc.common.SpecifyWsdlPanel$1.run(SpecifyWsdlPanel.java:364)
         at oracle.ide.dialogs.ProgressBar.run(ProgressBar.java:655)
         at java.lang.Thread.run(Thread.java:662)
    Caused by: oracle.xml.parser.v2.XMLParseException: Whitespace required.
         at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:323)
         at oracle.xml.parser.v2.XMLReader.scanQuotedString(XMLReader.java:1831)
         at oracle.xml.parser.v2.XMLReader.scanQuotedString(XMLReader.java:1939)
         at oracle.xml.parser.v2.NonValidatingParser.parseDoctypeDecl(NonValidatingParser.java:489)
         at oracle.xml.parser.v2.NonValidatingParser.parseProlog(NonValidatingParser.java:363)
         at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:321)
         at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:226)
         at oracle.xml.jaxp.JXDocumentBuilder.parse(JXDocumentBuilder.java:155)
         at oracle.j2ee.ws.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:337)

    Hi
    I am facing similar issue but with Custom Adapter . I copied the axis jars under the JavaTasks folder but it does not help.
    I then copied them under the oim.ear/APP_INF/lib and restarted the OIM managed server but somehow even that does not help.
    I get following error.
    Caused by: java.lang.NoSuchMethodError: org/apache/axiom/om/OMAbstractFactory.getMetaFactory()Lorg/apache/axiom/om/OMMetaFactory;
            at org.apache.axiom.om.OMXMLBuilderFactory.createOMBuilder(OMXMLBuilderFactory.java:150)
            at org.apache.axiom.om.OMXMLBuilderFactory.createOMBuilder(OMXMLBuilderFactory.java:133)
            at org.apache.axiom.om.OMXMLBuilderFactory.createOMBuilder(OMXMLBuilderFactory.java:104)
            at org.apache.axis2.util.XMLUtils.toOM(XMLUtils.java:590)
            at org.apache.axis2.util.XMLUtils.toOM(XMLUtils.java:575)
            at org.apache.axis2.deployment.DescriptionBuilder.buildOM(DescriptionBuilder.java:97)
            at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:90)
            at org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:857)
            at org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:116)
            at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:64)
            at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:210)
            at org.apache.axis2.client.ServiceClient.configureServiceClient(ServiceClient.java:151)
    Any pointer on how I can try to resolve it.
    Regards
    Abhinav

  • Abap client proxy scenario

    i  am getting an exception in my code(in function i am calling inside my report) while executing my abap report for calling client proxy .
    is there any thing by which i can find out where the actual problem is?or any debugging system available or any logging available ?

    Hello Rohit,
    We faced the similar problem and found a feasible solution to debug.
    1. Write a code for an infinite loop in start of your proxy. For ex:
    debug = true.
    while debug = true.
    endwhile.
    2. go to sm51 and find your process in all the list of process.
    3. select it and from menu, choose debug.
    "Reward Point if useful"
    Thanks,
    Kulwant

  • Dynamically loading client proxy no longer works

    I've got several instances where we need to dynamically load/initialize a WebService client proxy using a URL classloader all within an Applet. The need for the classloader and dynamic loading is due to the seperate jars holding different system modules. One main module can't possible know which submodules are also installed and have WebServices running.
    Instead, the main module reads the location of a class to load and uses a URL classloader to load that class. The loaded class knows about it's own client proxy to use and tries to load the appropriate jar and class. The proxy is successfully found and loaded using the classloader, but pukes during initialization. It appears the RuntimeModeler can't find the generated IsAvailable class even though it exists in the same signed jar that just got loaded and which contains the very client proxy that is trying to initialize itself.
    This process worked fine using 1.5, but no longer works after migrating to 1.6. Am I missing something obvious?
    Classloader: java.net.FactoryURLClassLoader@863cc1
    WebAppMgr.getServiceProxy -> b4 initialize
    class: com.irista.warehouse.webservice.wmscoredata.server.data.IsAvailable could not be found
         at com.sun.xml.internal.ws.modeler.RuntimeModeler.getClass(Unknown Source)
         at com.sun.xml.internal.ws.modeler.RuntimeModeler.processDocWrappedMethod(Unknown Source)
         at com.sun.xml.internal.ws.modeler.RuntimeModeler.processMethod(Unknown Source)
         at com.sun.xml.internal.ws.modeler.RuntimeModeler.processClass(Unknown Source)
         at com.sun.xml.internal.ws.modeler.RuntimeModeler.buildRuntimeModel(Unknown Source)
         at com.sun.xml.internal.ws.client.ServiceContextBuilder.processAnnotations(Unknown Source)
         at com.sun.xml.internal.ws.client.ServiceContextBuilder.completeServiceContext(Unknown Source)
         at com.sun.xml.internal.ws.client.WSServiceDelegate.processServiceContext(Unknown Source)
         at com.sun.xml.internal.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(Unknown Source)
         at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(Unknown Source)
         at javax.xml.ws.Service.getPort(Unknown Source)
         at com.irista.warehouse.webservice.wmscoredata.server.data.WmsCoreDataWS.getWarehouseCoreDataWSPort(WmsCoreDataWS.java:50)
         at com.irista.warehouse.webservice.wmscoredata.client.WmsCoreDataSvcProxy.initialize(WmsCoreDataSvcProxy.java:92)
         at com.irista.ui.webapp.framework.WebAppManager.getServiceProxy(WebAppManager.java:760)
         at com.irista.warehouse.webapps.scheduling.CycleCountParameterPanel.getCycleCountSets(CycleCountParameterPanel.java:309)
         at com.irista.warehouse.webapps.scheduling.CycleCountParameterPanel.refreshAction(CycleCountParameterPanel.java:236)
         at com.irista.warehouse.webapps.scheduling.CycleCountParameterPanel.preDisplay(CycleCountParameterPanel.java:225)
         at com.irista.warehouse.webapps.scheduling.CycleCountParameterPanel.initialize(CycleCountParameterPanel.java:149)
         at com.irista.foundation.webapps.scheduling.TaskTypeParameterPanel.createParameterPanel(TaskTypeParameterPanel.java:473)
         at com.irista.foundation.webapps.scheduling.TaskTypeParameterPanel.refreshAction(TaskTypeParameterPanel.java:147)
         at com.irista.foundation.webapps.scheduling.TaskTypeParameterPanel.preDisplay(TaskTypeParameterPanel.java:331)
         at com.irista.ui.webapp.framework.TabbedAppletPane.changePanel(TabbedAppletPane.java:311)
         at com.irista.ui.webapp.framework.TabbedAppletPane$TabbedChangeListener.stateChanged(TabbedAppletPane.java:385)
         at javax.swing.JTabbedPane.fireStateChanged(Unknown Source)
         at javax.swing.JTabbedPane$ModelListener.stateChanged(Unknown Source)
         at javax.swing.DefaultSingleSelectionModel.fireStateChanged(Unknown Source)
         at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(Unknown Source)
         at javax.swing.JTabbedPane.setSelectedIndexImpl(Unknown Source)
         at javax.swing.JTabbedPane.setSelectedIndex(Unknown Source)
         at javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(Unknown Source)
         at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
         at java.awt.Component.processMouseEvent(Unknown Source)
         at javax.swing.JComponent.processMouseEvent(Unknown Source)
         at java.awt.Component.processEvent(Unknown Source)
         at java.awt.Container.processEvent(Unknown Source)
         at java.awt.Component.dispatchEventImpl(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)

    Are you running SP2 R2? This worked for me as well until I upgraded to SCCM 2007 SP2 R2. I am focusing on the "~Doing Account Cleanup" errors in the ccm.log which should happen every 30 days, not every 20 minutes. Those errors have to be related to client push problems. Also, thanks for the reboot suggestion. I realize anytime a computer object is added to a domain security group that has is a member of a local group on the client, that a reboot is necessary on client systems in order to receive a new Kerberos access token but in the case of my test systems, I have explicitly added the computer account to the local administrators group so a reboot is not required. I have a test site in a completely different forest and it behaves almost the same way (doesn't run the "~Doing Account Cleanup" every 20 minutes) but still fails to install the client using the site server's computer account. Must be me!!!   

  • Need some help in creating client proxy to call webservice

    Hi experts,
    I am new to ABAP so couldnt understand the SAP ABAP jargons.
    On of my colleague has written one search help exit function and i need to use that and have to write client proxy to establish connection to webservice.
    I never worked on proxy or webservice so, struggling to understand the concept and steps.
    I am following second part i.e Release 640 part of /people/thomas.jung3/blog/2004/11/17/bsp-a-developers-journal-part-xiv--consuming-webservices-with-abap weblog.
    I couldnt find "To get the process started, we turn to our old friend SE80. <b>From the Enterprise Services Tab, we are going to select Client Proxy and then hit create"</b>
    when i go to transaction se80 ObjectNavigator, i could see two dropdown lists after some tabs.
    in first list, I have selected, "Application Hierarchy", and in second I am selecting "Package".
    Not sure whether its correct or not.
    Once i do this i could see long list of <b>Object name and its description.</b>
    Now, what should i do ? where should i go for "Enterprise Services Tab" to create my proxy.
    Any help would be appreciated.
    Please send me PDF, having detailed steps to create client proxy.
    Thanks,
    Pranav

    Right click on the package and select Proxy object. In the Wizard select Service Consumer.
    then give the url of the WSDL file you want to access or path if u have a local file.
    then give the package for client proxy.
    then complete the wizard. the  client proxy will be create in that package.
    Next step will be creating a Logical Port using the transaction "lpconfig". Give the proxy name of the service interface created under client proxy. and set the configuration as follows.
    1. Make as a default port.
    2. in the URL, give the url of the webservice (.asmx)
    3. select "State Enabled" and "Message ID"
    and after creating a logical port,  set the proxy settings as in your webbrowser.
    (Http proxy server and port).
    then simply execute your webservice from SE80.

  • Error at creating Client Proxy of external webservice (WSDL)

    Hi Experts,
    I try to create a Client Proxy Object out of an external webservice. Here is the WSDL URL:
    [http://www.webservicex.net/CurrencyConvertor.asmx?wsdl]
    I try to create it with this URL and then I get the error message
    Not implemented
    Exception of class CX_SIDL_INTERNAL_ERROR
    I found two other threads with a similar problem:
    cunsuming external webservice in ABAP
    Problem while consuming external webservice
    But there is no solution that worked for me. In the first thread it is mentioned, that the code between
    <wsdl:binding name="XXXXHttpGet" type="tns:XXXHttpGet">
    and it's closing brackets should be removed in a local file. I tried that and was able to create a client proxy object out of this local wsdl-file. But then I called the webservice with the folling coding for testing:
    report  z_currency_converter.
    data: convert type ref to zzzco_currency_convertor_soap.
    try.
        create object convert
      exporting
        logical_port_name  = 'Z_LP'
      catch cx_ai_system_fault .
    endtry.
       data: output type zzzconversion_rate_soap_out  .
       data: input type zzzconversion_rate_soap_in .
       input-from_currency = 'EUR'.
       input-to_currency = 'USD'.
    try.
    call method convert->conversion_rate
      exporting
        input  = input
      importing
        output = output
    catch cx_ai_system_fault .
    catch cx_ai_application_fault .
    endtry.
    write output-conversion_rate_result.
    The same code worked fine in another system. In this "older" system could also create a client proxy, I think because it has a newer Support Pack version.
    SAP says the following:
    The problem is that this WSDL uses two bindings different from SOAP
    binding which is not in conformance with Basic Profile 1.1 -
    http://www.ws-i.org/Profiles/BasicProfile-1.1.html#WSDLBINDINGS .
    I looked in the document, but I do not know where the problem in the WSDL file exactly is. What have I to change? Or can somebody give me the URL of a free webservice, that you used for creating a client proxy with a new support pack standing? In the "old" system there is not yet the SOAMANAGER but in the one where it doesn't work.
    I hope you have an idea.
    Thanks a lot in advance!
    Best Regards,
    Ingmar

    I think it is the problem of version.U need to ask SAP to release some patch levels to correct it.
    Regards
    Snehasish

  • SAP Client Proxy to Webservice Synchronous Scenario

    Hi Experts,
    I have an outbound Synchronous Scenario.In which i have to trigger a Client Proxy from SAP side and Connect to a WebService using PI.
    I have with me the WSDl and URL for Webservice.Can anyone guide me with the necessary steps.
    Regards
    Gaurav

    Hi gaurav,
    From client proxy u have to send request and get the response back...
    So, for this create 2 corresponding data types and message types. and mapping will be between request message type which u created and request wsdl message and another mapping for response wsdl message and response message type which u created.
    create service interface outbound synchronous(give the message types which u created) and inbound synchronous(give the wsdl request and response messages).
    Regards,
    Sunitha

  • Consume Webservice using Client Proxy

    I wanted to consume the .NET webservice in SAP. I've below question, can anyone clarify me please?
    1. Can we use client Proxy to consume the external webservice? I read in some document that this can be used if we are using XI message interface.
    2. The webservice requires an user ID & password, how can i pass the authentication details to call the webservice if I use the Client proxy?
    Thanks in advance
    BM

    1. Can we use client Proxy to consume the external webservice? I read in some document that this can be used if we are using XI message interface.
    2. The webservice requires an user ID & password, how can i pass the authentication details to call the webservice if I use the Client proxy?
    -> 1) You can configure the server to use its own soap runtime. Check out transaction lpconfig.
    -> 2) You may user transaction sm59 and configure a rfc connection of type HTTP to extenal server. This allows you to pass
             a user/password permanently.
    regards, Stefan

  • Error in creation of client proxy.

    Hello all,
    I try to consume a webservice in SAP ABAP. When i create the service consumer proxy it is giving an error message llike
    "Incorrect value: Unknown QName http://wholesale...........................sendeWholesaleMeldungRequest"
    Have anyone come across this error scenario.
    I m using SAP ECC 6.0.
    Regards
    Sandep.

    Hi Sandeep,
    --->While creating client Proxy object to consume the webservice a pop will raise with 4 radio buttons options,i think you had selected any one of that depending upon your requirement,rite,If not do that and try.
    -->If you have the WSDL file in your local system select the Radio Button WSDL and import it into your Client Proxy.
    -->Also create the Logical Port.
    Thanks

  • Error while creating a client proxy for CBR.RU

    Hi!
    I need to consume web service. Here is the link: http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL
    I tried to make an own client proxy with SE80 transaction. (edit object->enterprise services -> client proxy -> create) After completing wizard an error occurs with text:
    Incorrect value: Unknown Namespace http://www.w3.org/2001/XMLSchema
    The same schema works perfecrly with this web service:
    http://www.deeptraining.com/webservices/wsStrings.asmx?WSDL
    In this case proxy class is created with no errors and everything is fine.
    Could anybody let me know what's the reason of such bug, please? I'm not competent with XML schemas so it's kind of difficult to understand what's wrong with WSDL file from CBR.RU

    Late response I know, but I have solved a similar problem recently and thought I would share.
    Firstly, the problem is not with the namespace. The "Namespace ..." part is just stating the namespace the "Incorrect Value" has. So this error is complaining about the value "Unknown" - which isn't very helpful.
    It appears the SAP SE80 importer does not like elements like the following because it can't understand <s:element ref="s:schema" />. It appears this is a common thing to be included in .NET generated WSDLs.
     <s:element minOccurs="0" maxOccurs="1" name="GetCursDynamicResult">      <s:complexType>          <s:sequence>               <s:element ref="s:schema" />               <s:any />          </s:sequence>     </s:complexType></s:element> 
    SAP will also not like this example as it does not support mixed content (see: http://www.w3schools.com/schema/schema_complex_mixed.asp)
    <s:element minOccurs="0" maxOccurs="1" name="SaldoXMLResult">
         <s:complexType mixed="true">
              <s:sequence>
                   <s:any />
              </s:sequence>
         </s:complexType>
    </s:element>
    You can "Fix" the problem in both cases by removing the offending text in a local copy of the WSDL file so remove line 4 in the first example and change line 2 in the second to <s:complexType> the proxy can then be generated. No idea if the resulting service will be fully operational though!

  • Invoking a bpel process using webservice client

    I am not able to run the sample webservice client from
    102.InvokingProcesses/ws.
    When I try my own program for 132.UserTasks(very similar to the example program),
    The correct input looks like
    <inputVariable>
    - <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
    - <ns1:stockReviewSheet xmlns:ns1="http://samples.otn.com">
    <ns1:symbol>ORCL</ns1:symbol>
    <ns1:targetPrice>100.0</ns1:targetPrice>
    <ns1:currentPrice>100.0</ns1:currentPrice>
    <ns1:action>200</ns1:action>
    <ns1:quantity>122</ns1:quantity>
    </ns1:stockReviewSheet>
    </part>
    </inputVariable>
    While from the invoking process whatever I give comes as
    <ns0:stockReviewSheet>
    <action>buy</action>
    <currentPrice>122.23</currentPrice>
    <quantity>100</quantity>
    <symbol>ORCL</symbol>
    <targetPrice>10.23</targetPrice>
    </ns0:stockReviewSheet>
    I am using the version 10.1.3 and the error I get on the application side is
    07/08/27 17:42:20.757 UserTaskSampleUI: Servlet error
    java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
         at java.util.ArrayList.RangeCheck(ArrayList.java:546)
         at java.util.ArrayList.get(ArrayList.java:321)
         at java.util.Collections$UnmodifiableList.get(Collections.java:1155)
         at displayTask.jspService(_displayTask.java:105)
         at com.orionserver[Oracle Containers for J2EE 10g (10.1.3.1.0) ].http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:453)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:591)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:515)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:711)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    Can anybody point me to invocation of bpel process via web service for complex object types like User for 10.1.3??
    Any input would be highly useful!!!
    Message was edited by:
    user576399
    Message was edited by:
    user576399

    Sancho,
    Thanks for the prompt reply. We trying to automate the following process:-
    1. The user select multiple documents from a folder in a library that contains all released documents.
    2. He then locks the documents.
    3. Selects the locked documents and copies it to a folder in the personal library.
    We are trying to lock and copy the documents as a 1 step process, because its difficult for the users to select all of the documents locked earlier and then copy it the personal library.
    We are trying to take the folder name as the user parameter, when the files are locked, so that the process and create the lock the files, create the folder and copy the files in this folder.
    Thanks again for your time and help.
    Hetal

  • Setting up authentication for client proxy in SOAMANAGER

    Hi all,
              I have a webservice in .NET system and i have created Client proxy in ABAP.
              I have created logical port also.
              When i am testing the service I am getting a POP-UP to enter username and password.
              Is there any setting for athentication in SOAMANAGER where we can specify the USERNAME &
              Password so that POP-UP for the same is surpassed while testing.
              This, can help calling the service in background.
              Please help am on the end of my wits.
    Thanks & Regards.
    Yats.

    hope below docuements would help you.
    Re: Inbound Proxy as WebService
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/b04408cc-f10e-2c10-b5b7-af11026b2393
    regards
    nag

  • Handling streaming attachments in Client Proxy

    I'm no java programmer in any shape or form so I'm really struggling with a web service that I've created that utilizes streaming attachments. THe OEM test web page returns the attachment perfectly well in the SOAP response but I'm unable to harness the Java to deal with it in the client proxy code.
    I created a proxy using the wsa command line utility but there is some java expertise required to code the 'main' class. Does anyone have an example of java code that takes the 'oracle.webservices.attachments' and returns it in a useful form to a calling application? In essence, what I'm looking to do is to call the proxy from pl/sql, and return the attachment as a CLOB.
    Does anyone know of any examples of proxy java code handling this type of thing?

    I've managed to create a proxy that saves the streaming attachment to a local directory (thanks to the info at this post: Re: Streaming Attachments
    The problem I have is that I have to hardcode parameters into the HttpSoap11Client code like this:
    public static void main(String[] args) {
    try {
    getxmlweb.proxy.HttpSoap11Client myPort = new getxmlweb.proxy.HttpSoap11Client();
    System.out.println("calling " + myPort.getEndpoint());
    // Add your own code here
    String pResId = null ;
    String pFileName= null;
    String pFilterStr = "sepa_region='North'";
    String fileName = "/tmp/plain1.txt";
    AttachmentFactory factory = AttachmentFactory.newInstance();
    Attachments atts = factory.createAttachments();
    myPort.getClob(pResId,pFileName,pFilterStr, atts);
    The last line here is the call to the method that creates the response, I need to pass parameters to this call DYNAMICALLY. I've tried setting up parameters in the 'public void main' signature but it doesn't compile telling me it must be public static void main(String[] args). This is where my lack of JAVA skills are letting me down.
    Can anyone see a way around this?

Maybe you are looking for

  • Homesite 5.5 resource window will not dock

    Here is a screenshot: http://www.borlak.org/images/homesitebr.JPG You'll notice the resource window (F9) is floating. It wont re-dock. A coworker has the option under View->Resource Windows->Dock all windows (or something to that effect). As you'll s

  • Current swatch in control palette

    I think it would be nice to have the active swatch displayed in the control palette, just like the other information about whatever object is selected. Unless I am mistaken, the only way (in CS4) to see the color of a selected object, or of the selec

  • Discoverer Plus desktop

    I want to download Discoverer Plus to work with Oracle 10g but I can not find it on the Oracle website - what is the url to download Oracle Discoverer PLus client. Ive built cubes and they work fine with AWM ( i can see the data etc ) but do not work

  • Advice for poker odds calculator

    Hi, Im about to start building an application that will keep track on what hand has best odds to win in texas holdem. For every card I get I push a button, for ex AK spades I push two buttons. One for the A and one for the K, and then the final two b

  • PO with wrong currency value

    Hi, We had A PR created for 100 Qnty with Value 5000 Dinars,It was converted into a PO,but the purchase people by mistake entered the cuirrency as CHF,that is 5000 CHF(Swiss Franc). Now the Gr & Invoice has been posted,and the vendor was also paid. L