Unabel to call soap webservice (axis)

Hi
I have develop a webservice using axis. I am using tomcat 6 and jdk6 version. I have successfully deploy webservice in tomcat, but when I am trying to call that service (client side) it blow me this exception.
Exception-----------------
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.lang.reflect.InvocationTargetException
faultActor:
faultNode:
faultDetail:
        {http://xml.apache.org/axis/}stackTrace:java.lang.reflect.InvocationTargetException
        at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
        at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
        at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Sourc
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
        at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
        at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
        at org.apache.axis.client.Call.invoke(Call.java:2767)
        at org.apache.axis.client.Call.invoke(Call.java:2443)
        at org.apache.axis.client.Call.invoke(Call.java:2366)
        at org.apache.axis.client.Call.invoke(Call.java:1812)
        at ws.fms.fedex.com.FmsSoapSoapBindingStub.getSensorPositionData(FmsSoapSoapBindingStub.java:209)
        at ws.fms.fedex.com.FmsShipmentServerServiceLocator.main(FmsShipmentServerServiceLocator.java:163)
        {http://xml.apache.org/axis/}hostname:EMRG-409964-L19
java.lang.reflect.InvocationTargetException
        at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
        at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
        at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Sourc
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
        at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
        at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
        at org.apache.axis.client.Call.invoke(Call.java:2767)
        at org.apache.axis.client.Call.invoke(Call.java:2443)
        at org.apache.axis.client.Call.invoke(Call.java:2366)
        at org.apache.axis.client.Call.invoke(Call.java:1812)
        at ws.fms.fedex.com.FmsSoapSoapBindingStub.getSensorPositionData(FmsSoapSoapBindingStub.java:209)
        at ws.fms.fedex.com.FmsShipmentServerServiceLocator.main(FmsShipmentServerServiceLocator.java:163)I am sure, many friends had face this issue. Please reply me, if you have face this type of issue.
Is there any server side configureation required????
Thanks
UmaShankar Adha

Is that all what you got? There must be a root cause / caused by part which explains the InvocationTargetException. Lookup the complete trace in the logs or just debug your app.

Similar Messages

  • Calling a webservice with SOAP Receiver

    Hi Guys,
       Im calling web service from XI using SOAP. I could call the webservice using XML Spy, It is working fine.In XML spy I could se the response (variable out , type double).
       When i call the same web service from XI It doesnt give any error in the beginning and later it would convert the same to "Acknowledment contains system errors" in Ack staus(SXMB_MONI). I configured my scenario as Asyn.However there is a response from webservice. Is it mandatory to create a sync scenario in this case? If so I couldnt configure as Im sending an Idoc as a SOAP request.But Response of Webservice is of double type( some integer it returns) So I couldnt map both as it was giving some problems in message mapping.
       I would like to know how XI sends a soap request ? I mean in SXMB_MONI some where it must be there. I wanted to copy the same from XI n paste in XML spy so that i can test whether it would go throgh.
        In plance of that webservice, We created an asp page and configured IIS. I wrote the ASP in such a way that It would read the SOAP request and dump into my default website area. I Could see the SOAP request coming up from XI.When i paste this in XML spy its working fine but not from XI Im wondering what went wrong?
       Appriciate your help.
    Thanks a lot
    Kiran

    Hi Raghavesh,
       My id is [email protected]
    Hi Vijay,
        As Bhavesh said,
             I can handle the response by makign async message interface , I did it but in SOAP adaptor I dont see any option of setting QOS?
            Ya WS is responding So by doing like asyn i can go ahead with that right? Now its throwing error in ask status as :
      <SAP:AdditionalText>com.sap.aii.af.ra.ms.api.MessagingException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: Not enough message parts were received for the operation.: com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: Not enough message parts were received for the operation.</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace

  • Calling functions from SOAP webservice. Can't access webservice functions.

    Hi flex gurus,
    I am quite new to flex. I am working on an flex application where I am trying to remotely invoke a SOAP webservice which is a wsdl file from Adobe flex 4.6.
    I have authenticated the webservice(Basic Authentication Done) and got access to wsdl but I am unable to call the functions in it. I just want to pass the username and password for the user login to the service function which will give me the data useful for my application, but nothing is returned when the webservice function is called.
    I am totally blocked at this point. Please help me.
    Thanks in advance.

    Below is my code snippet. But nothing is returned from th service, what is the problem???
    <?xml version="1.0" encoding="utf-8"?>
    <s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
            xmlns:s="library://ns.adobe.com/flex/spark" title="CheckWS" >
        <fx:Script>
            <![CDATA[
                import flash.net.drm.AuthenticationMethod;
                import mx.collections.ArrayCollection;
                import mx.messaging.messages.SOAPMessage;
                import mx.rpc.AsyncToken;
                import mx.rpc.events.FaultEvent;
                import mx.rpc.events.ResultEvent;
                import mx.rpc.http.HTTPService;
                import mx.rpc.soap.AbstractWebService;
                import mx.rpc.soap.Operation;
                import mx.rpc.soap.SOAPFault;
                import mx.rpc.soap.SOAPHeader;
                import mx.rpc.soap.SOAPResult;
                import mx.rpc.soap.WebService;
                import mx.rpc.wsdl.WSDLBinding;
                import mx.utils.Base64Encoder;
                public var resultdata:String;
                private function send_data(service:mx.rpc.http.HTTPService):void {
                    var encoder:Base64Encoder = new Base64Encoder();           
                    encoder.insertNewLines = false;           
                    encoder.encode("auth_usrname:auth_pswd");
                    service.headers = {Authorization:"Basic " + encoder.toString()};
                    service.send();
                //protected function soapWS_resultHandler(event:ResultEvent):void
                    // TODO Auto-generated method stub
                    /* var i:int;
                    var webresult:String=event.result.toString();
                    i = 0; */
                    /* var i:int;
                    resultdata = event.result.toString();
                    i = 0;
            ]]>
        </fx:Script>
        <fx:Declarations>
            <!-- Place non-visual elements (e.g., services, value objects) here -->
            <s:HTTPService id="soapWS"
                           url="My_Web_URL?wsdl" result="soapWS_resultHandler(event)" resultFormat="xml" useProxy="false" method="POST">
                <s:request xmlns="">
                    <Username>{username.text}</Username>
                    <Password>{password.text}</Password>
                </s:request>
                <s:result >
                    <![CDATA[
                        var i:int;
                        dgUserRequest.visible = true;
                        var obj:Object = new Object();
                        obj = event.result;
                    //    dgUserRequest.dataProvider = event.result.toString();
                    //    var str:String = new String();
                        resultdata = obj.toString();
                        i = 0;
                    ]]>                                                       
                </s:result>
            </s:HTTPService>
        </fx:Declarations>
        <s:Form x="20" y="10" width="100%">
            <s:FormItem color="blue">
                <s:Label text="Username" />    
                <s:TextInput id="username"/>
            </s:FormItem>
            <s:FormItem color="blue">
                <s:Label text="Password" />    
                <s:TextInput id="password"/>    
            </s:FormItem>
            <s:FormItem color="yellow">
                <s:Button label="Submit" click="send_data(soapWS)"/>
            </s:FormItem>
        </s:Form>
        <s:DataGrid id="dgUserRequest" x="20" y="300"
                     dataProvider="{resultdata}" width="100%">
            <s:columns>
                <s:ArrayList>
                    <s:GridColumn dataField="password" headerText="Password" />
                    <s:GridColumn dataField="username" headerText="User Name"/>
                </s:ArrayList>
            </s:columns>
        </s:DataGrid>
    </s:View>

  • Is it possible to call a SOAP webservice using HTTP POST adapter

    Hello Experts,
    Is it possible to call a webservice using a HTTP adapter with POST method? If yes, how?
    Regards,
    Diptee

    No this will not work since you have additional SOAP information (i.e. SOAP envelope, security information) in addition to the payload. If you need a simple HTTP-Post for example, then you don't need SOAP, you can use the more simple http protocol without the additional features of SOAP.
    Also refer to this link for differences: Difference b/w SOAP and HTTP

  • How to call a WebService method using HttpsURLConnection?

    Hi,
    I want to know how i could use HttpsURLConnection to call a WebService method.
    I can use the following:
    String endpoint = "https://xyz:8443/axis/services/MSecurity";
    System.setProperty("javax.net.ssl.keyStore", keyStorepath);
    System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
    System.setProperty("javax.net.ssl.keyStorePassword", keyStorePassword);
    System.setProperty("javax.net.ssl.trustStore", trustStorePath);
    System.setProperty("javax.net.ssl.trustStoreType", "JKS");
    System.setProperty("javax.net.ssl.trustStorePassword", trustpass);
    //Call Web Service
    URL url = new URL(endpoint);
    MSecuritySoapBindingStub service = new MSecuritySoapBindingStub(url, null);
    //get list of people
    String[] vo = service.getVO();
    for (int i = 0; i < vo.length; i++) {
    System.out.println(vo);
    However, loading my cert. this way is not flexible. Therefore, I am using SSLContext to initialize my keystore and truststore and then I am using the following to connect to my webservice:
    SSLContext sc = SSLContext.getInstance("SSLv3");
    sc.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
    SSLSocketFactory ssf = sc.getSocketFactory();
    URL url = new URL(endpoint);
    HttpsURLConnection htp = (HttpsURLConnection) url.openConnection();
    htp.setSSLSocketFactory(ssf);
    However, I do not know how I could use the "htp" object to call the getVO() method above.

    Use Apache Axis to do SOAP in Java.
    Nobody can just mail you the code. You first have to create java source files from the web service via its WSDL file.

  • Error while calling PI webservice from EJB

    Hi Experts,
    We are getting exception while calling PI webservice from EJB which is deployed in CE 7.2. Earlier we used to call the same webservice but from different PI system at that it worked fine. Now we have changed the consumer proxies required in CE and tried to call from CE and it is throwing error. We have checked usernames and passwords that we are using to call the service and that is working fine. PI team tested from their side and li is also fine. We have also restarted the CE system but invain. Can somebody help on this.  The below is the trace that we got.
    Location: com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding
    Text: Connection IO Exception. Check nested exception for details. (Connection reset).
    [EXCEPTION]
    com.sap.engine.services.webservices.espbase.client.bindings.exceptions.TransportBindingException: Connection IO Exception. Check nested exception for details. (Connection reset).
    at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.outputSOAPMessage(SOAPTransportBinding.java:419)
    at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.call_SOAP(SOAPTransportBinding.java:1364)
    at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.callWOLogging(SOAPTransportBinding.java:990)
    at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.call(SOAPTransportBinding.java:944)
    at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.processTransportBindingCall(WSInvocationHandler.java:168)
    at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.invokeSEISyncMethod(WSInvocationHandler.java:121)
    at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.invokeSEIMethod(WSInvocationHandler.java:84)
    at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.invoke(WSInvocationHandler.java:65)
    at $Proxy780.mioaRDMDataDistribution(Unknown Source)
    at com.MDMEventListener.callToPIWS(MDMEventListener.java:100)
    at com.MDMEventListener.ListenerMethod(MDMEventListener.java:173)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:47)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_WS.invoke(Interceptors_WS.java:31)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:71)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:39)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:23)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:25)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:17)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:138)
    at com.sap.engine.services.ejb3.webservice.impl.DefaultImplementationContainer.invokeMethod(DefaultImplementationContainer.java:203)
    at com.sap.engine.services.webservices.espbase.server.runtime.RuntimeProcessingEnvironment.process0(RuntimeProcessingEnvironment.java:730)
    at com.sap.engine.services.webservices.espbase.server.runtime.RuntimeProcessingEnvironment.preProcess(RuntimeProcessingEnvironment.java:682)
    at com.sap.engine.services.webservices.espbase.server.runtime.RuntimeProcessingEnvironment.process(RuntimeProcessingEnvironment.java:324)
    at com.sap.engine.services.webservices.runtime.servlet.ServletDispatcherImpl.doPostWOLogging(ServletDispatcherImpl.java:199)
    at com.sap.engine.services.webservices.runtime.servlet.ServletDispatcherImpl.doPost(ServletDispatcherImpl.java:65)
    at com.sap.engine.services.webservices.servlet.SoapServlet.doPost(SoapServlet.java:61)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:152)
    at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:38)
    at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:404)
    at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:204)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:440)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:429)
    at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:82)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:268)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)
    at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
    at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
    at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
    at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:54)
    at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:42)
    at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:447)
    at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:264)
    at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)
    at com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
    at com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
    at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)
    Caused by: java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:168)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
    at com.sap.engine.services.webservices.jaxm.soap.HTTPSocket.readLine(HTTPSocket.java:950)
    at com.sap.engine.services.webservices.jaxm.soap.HTTPSocket.getInputStream(HTTPSocket.java:414)
    at com.sap.engine.services.webservices.jaxm.soap.HTTPSocket.getResponseCode(HTTPSocket.java:319)
    at com.sap.engine.services.webservices.espbase.client.bindings.ClientHTTPTransport.getResponseCode(ClientHTTPTransport.java:209)
    at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.outputSOAPMessage(SOAPTransportBinding.java:385)
    ... 78 more
    Regards,
    Pradeep

    Hi Pradeep,
    this looks like if the server is not reachable. Have you checked if both server are able to communicate? Maybe firewall rules block the request.
    Regards,
    Tobias

  • Error getting while calling a webService from XI

    Hi
    We are getting the follwoing error while calling a webservice from XI. We Could call the same webservice from XML spy. Have checked the SOAP adapter it was running fine and the communication channel parameters too.
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!-- Inbound Message --> <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1"><SAP:Category>XIAdapterFramework</SAP:Category><SAP:Code area="MESSAGE">GENERAL</SAP:Code><SAP:P1/><SAP:P2/><SAP:P3/><SAP:P4/><SAP:AdditionalText>com.sap.aii.af.ra.ms.api.MessagingException: SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault: com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault</SAP:AdditionalText><SAP:ApplicationFaultMessage namespace=""/><SAP:Stack/><SAP:Retry>M</SAP:Retry></SAP:Error>
    Please try to help.
    Thanks
    Ramesh

    Hi
    Thanks a lot for your kind support.
    Hi Moorthy
    We have created one Asyn MI and wrapped the external definition into that, Haven't done any mapping for responce. Please find the trace below.
    Hi Bhavesh
    It was great helpful link but the payload days is not visible for this message it was containing details about sending. For some other message i could see payload.
    I Could see one differnce in the XML Spy and "XI payload before entering SOAP Adapter"
    The following line doesn’t appear in the XI payload.
    <m:StatusUpdate xmlns:m="http://localhost/StatusUpdate" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    </m:StatusUpdate>
    Is this line would be embeded in the SOAP Adapter??? Please find the trace below. Please help me if you have any additional info.
    The message was successfully received by the messaging system. Profile: XI URL: Using connection AFW. Trying to put the message into the receive queue.
    Message successfully put into the queue.
    The message was successfully retrieved from the receive queue.
    The message status set to DLNG.
    Delivering to channel: CC_SOAP_Rcvr_D_Pick_ZALEAUD
    SOAP: request message entering the adapter
    SOAP: completed the processing
    SOAP: response message received 4cb3fab0-7fc5-11db-8c5a-000f203c93e0
    SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault
    SOAP: sending a delivery error ack ...
    SOAP: sent a delivery error ack
    Exception caught by adapter framework: SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault
    Delivery of the message to the application using connection AFW failed, due to: SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault.
    The asynchronous message was successfully scheduled to be delivered at Wed Nov 29 16:23:51 GMT 2006.
    The message status set to WAIT.
    Retrying to deliver message to the application. Retry: 1
    Kind Regards
    Ramesh
    Message was edited by:
            Ramesh Reddy Pothireddy

  • Error when calling a Webservice's public method in Forms10g

    Hi,
    I'm getting the following error when calling a webservice's public method, i'm using Forms10g 10.1.2.3
    java.rmi.RemoteException; nested exception is: HTTP transport error javax.xml.soap.SOAPException
    java.security.PrivilegedActionException javax.xml.soap.SOAPException
    Message send failed javax.net.ssl.SSLException SSL handshake failed X509CertChI have added the Jar containing the client proxy in both Classpaths(system variable and default.env), the jar has been made with jdk 1.4
    I also have tested the client proxy from jDeveloper and it's working there, but in Forms i'm getting this error.
    I guess my problem might be that i'm calling a webservice that is secured since the url starts with https
    what should i do to fix this ??
    Regards
    Carlos

    I understand, so i have a doubt, why the webservice works on jDeveloper ??Not just JDeveloper even soapUI and Neatbeans have a way of working without a client certificate installed.
    I do not know how they achieve it. I know that they work without a client DC.
    Cheers,
    PS: See this http://stackoverflow.com/questions/8887434/webservices-ssl-https, it offers a clue.
    The java programs run unhindered when one-way authentication is being used. These products ship with a digital certificate that is in the path of most popular CAs.
    Corollary, if the Web Server is configured for mutual authentication then you need to install and configure the client certificate in the tools.
    Edited by: Prabodh on Dec 5, 2012 8:36 PM

  • Calling a webservices from Oracle 10G ( 10.2.0.2)

    Hi:
    I am in the process of putting a database Java stored procedure that can call an external webservices.
    PL/SQL Wrapper -> Java Stored Procedure-> External Web services
    I loaded the following jars in the dataase.
    dbwsa.jar
    dbwsclient.jar
    1. I am having issues consuming this external webservice from SQL*PLUS. Do you know whether I need to load any other JARS ?
    2. How can I debug this issue ? I enabled TCP Monitor in JDeveloper and don't see anything when I call the PL/SQL wrapper in SQL*PLUS.
    3. I can use a Java client and tested the Web services OK.
    error message:
    SQL> l
    1 declare
    2 x varchar2(100);
    3 begin
    4
    5 x := tester.test_db1();
    6* end;
    SQL> /
    calling
    http://XX.XX.YY.121:8988/Application9-ViewController-context-root/MyWebService1S
    oapHttpPort
    java.rmi.RemoteException: Error parsing envelope; nested exception is:
    javax.xml.soap.SOAPException: Error parsing envelope
    at
    view.proxy.runtime.MyWebService1SoapHttp_Stub.sayhello2(MyWebService1SoapHttp_St
    ub.java:99)
    at
    prpd.MyWebService1SoapHttpPortClient.sayhello2(MyWebService1SoapHttpPortClient.j
    ava:41)
    at prpd.TEST_DB.TEST_DB1(TEST_DB.java:21)
    Caused by: javax.xml.soap.SOAPException: Error parsing envelope
    at
    oracle.j2ee.ws.saaj.soap.soap11.SOAPImplementation11.createEnvelope(SOAPImplemen
    tation11.java:103)
    at oracle.j2ee.ws.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:75)
    at oracle.j2ee.ws.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:934)
    at
    oracle.j2ee.ws.client.StreamingSender._preHandlingHook(StreamingSender.java:692)
    at oracle.j2ee.ws.client.StubBase._preHandlingHook(StubBase.java:688)
    at oracle.j2ee.ws.client.StreamingSender._sendImpl(StreamingSender.java:207)
    at oracle.j2ee.ws.client.StreamingSender._send(StreamingSender.java:112)
    at
    view.proxy.runtime.MyWebService1SoapHttp_Stub.sayhello2(MyWebService1SoapHttp_St
    ub.java:76)
    ... 2 more
    Caused by: java.lang.IllegalArgumentException
    at oracle.xml.parser.v2.XMLParser.setAttribute(XMLParser.java:794)
    at
    oracle.j2ee.ws.saaj.soap.soap11.SOAPImplementation11.createEnvelope(SOAPImplemen
    tation11.java:54)
    ... 9 more
    PL/SQL procedure successfully completed.
    SQL> /
    thx
    Raj

    thanks Tugduall for the comments. here are the instructions I followed to create a java stored procedure that can call a webservices. Unfortunately, this seems like a very complex task. Do you have any ideas how I could debug or troubleshoot this issue ?
    Please note that I used JDeveloper to generate the client code.
    ========================================================
    1. download the dbws-callout-utility-10R2.zip from OTN at:
    http://www.oracle.com/technology/sample_code/tech/java/jsp/dbwebservices.html
    2. create an application/project with 1.4 JDK.
    3. create a web service by ‘Business Tier’->Web Service->Web Service Proxy->UDDI
    4. next… to ‘Search for’, type ‘quote’.
    5. from the list select one. For me ‘Quote of day’ was picked.
    6. click Next all the way to Finish.
    7. from the ‘Application Sources’ select ‘QuotoProxy’ then find its main method.
    8. at the section
    // Add your own code here, add the line like:
    System.out.println("quote "+myPort.getQuote());
    9. run it to see its return.
    10. cteate a class that has a method to call client method to be invoked (static)
    like the following:
    package dbws;
    import dbws.QotdPortClient;
    public class MainClientStub {
    public MainClientStub() {
    public static String getMyQoute(){
    QotdPortClient myClient = null;
    try {
    myClient = new QotdPortClient();
    return myClient.getQuote();
    } catch (Exception e) {
    e.printStackTrace();
    return null;
    note that the package name in your project.
    11. create a deployment profile as ‘JAR File’. Uncheck the box ‘Project Dependencies’
    12. deploy it to the local box. ‘Deploy to JAR File’.
    13. unzip the dbws-callout-utility-10R2.zip to get dbwsa.jar.
    14. execute the following from command line:
    loadjava –user test/[email protected] -resolve –verbose –synonym –grant public to dbwsa.jar myarchive1.jar
    loadjava -user test/test@orcl1020 -resolve -verbose -synonym -genmissing -grant public myarchive1.j
    ar dbwsa.jar
    loadjava -user sys/<sys_pass> -resolve -verbose -synonym -genmissing -grant public myarchive1.jar dbwsa.jar
    15. create a function like the following:
    CREATE OR REPLACE FUNCTION teststub RETURN VARCHAR2 AS
    LANGUAGE JAVA NAME ‘dbws.MainClientStub.getMyQoute() return java.lang.String’;
    16. Run at sqlplus: Select teststub from dual;
    ======================================================

  • Calling a webservice from Pl/SQL

    Hi,
    I have created a function to call a webservice but I am getting the following error
    ORA-20000: soap:Client - System.Web.Services.Protocols.SoapException: Server
    did not recognize the value of HTTP Header SOAPAction: ConversionRate.
    at System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
    at
    System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage
    message)
    at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
    at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type,
    HttpContext context, HttpRequest request, HttpResponse response, Boolean&amp;
    abortProcessing)
    ORA-06512: at "APPS.SOAP_API", line 54
    ORA-06512: at "APPS.SOAP_API", line 81
    ORA-06512: at "APPS.PKG_MY_WEBSERVICE", line 12
    The Packages code are as follow:
    CREATE OR REPLACE PACKAGE soap_api AS
    TYPE t_request IS RECORD (
    method VARCHAR2(256),
    namespace VARCHAR2(256),
    body VARCHAR2(32767),
    envelope_tag VARCHAR2(30)
    TYPE t_response IS RECORD
    doc XMLTYPE,
    envelope_tag VARCHAR2(30)
    FUNCTION new_request(p_method IN VARCHAR2,
    p_namespace IN VARCHAR2,
    p_envelope_tag IN VARCHAR2 DEFAULT 'SOAP-ENV')
    RETURN t_request;
    PROCEDURE add_parameter(p_request IN OUT NOCOPY t_request,
    p_name IN VARCHAR2,
    p_type IN VARCHAR2,
    p_value IN VARCHAR2);
    FUNCTION invoke(p_request IN OUT NOCOPY t_request,
    p_url IN VARCHAR2,
    p_action IN VARCHAR2)
    RETURN t_response;
    FUNCTION get_return_value(p_response IN OUT NOCOPY t_response,
    p_name IN VARCHAR2,
    p_namespace IN VARCHAR2)
    RETURN VARCHAR2;
    END soap_api;
    CREATE OR REPLACE PACKAGE BODY soap_api AS
    FUNCTION new_request(p_method IN VARCHAR2,
    p_namespace IN VARCHAR2,
    p_envelope_tag IN VARCHAR2 DEFAULT 'SOAP-ENV')
    RETURN t_request AS
    l_request t_request;
    BEGIN
    l_request.method := p_method;
    l_request.namespace := p_namespace;
    l_request.envelope_tag := p_envelope_tag;
    RETURN l_request;
    END;
    PROCEDURE add_parameter(p_request IN OUT NOCOPY t_request,
    p_name IN VARCHAR2,
    p_type IN VARCHAR2,
    p_value IN VARCHAR2) AS
    BEGIN
    p_request.body := p_request.body||'<'||p_name||' xsi:type="'||p_type||'">'||p_value||'</'||p_name||'>';
    END;
    PROCEDURE generate_envelope(p_request IN OUT NOCOPY t_request,
              p_env IN OUT NOCOPY VARCHAR2) AS
    BEGIN
    p_env := '<'||p_request.envelope_tag||':Envelope xmlns:'||p_request.envelope_tag||'="http://schemas.xmlsoap.org/soap/envelope/" ' ||
    'xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">' ||
    '<'||p_request.envelope_tag||':Body>' ||
    '<'||p_request.method||' '||p_request.namespace||' '||p_request.envelope_tag||':encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">' ||
    p_request.body ||
    '</'||p_request.method||'>' ||
    '</'||p_request.envelope_tag||':Body>' ||
    '</'||p_request.envelope_tag||':Envelope>';
    END;
    PROCEDURE show_envelope(p_env IN VARCHAR2) AS
    i PLS_INTEGER;
    l_len PLS_INTEGER;
    BEGIN
    i := 1; l_len := LENGTH(p_env);
    WHILE (i <= l_len) LOOP
    DBMS_OUTPUT.put_line(SUBSTR(p_env, i, 60));
    i := i + 60;
    END LOOP;
    END;
    PROCEDURE check_fault(p_response IN OUT NOCOPY t_response) AS
    l_fault_node XMLTYPE;
    l_fault_code VARCHAR2(256);
    l_fault_string VARCHAR2(32767);
    BEGIN
    l_fault_node := p_response.doc.extract('/'||p_response.envelope_tag||':Fault',
    'xmlns:'||p_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/envelope/');
    IF (l_fault_node IS NOT NULL) THEN
    l_fault_code := l_fault_node.extract('/'||p_response.envelope_tag||':Fault/faultcode/child::text()',
    'xmlns:'||p_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/envelope/').getstringval();
    l_fault_string := l_fault_node.extract('/'||p_response.envelope_tag||':Fault/faultstring/child::text()',
    'xmlns:'||p_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/envelope/').getstringval();
    RAISE_APPLICATION_ERROR(-20000, l_fault_code || ' - ' || l_fault_string);
    END IF;
    END;
    FUNCTION invoke(p_request IN OUT NOCOPY t_request,
    p_url IN VARCHAR2,
    p_action IN VARCHAR2)
    RETURN t_response AS
    l_envelope VARCHAR2(32767);
    l_http_request UTL_HTTP.req;
    l_http_response UTL_HTTP.resp;
    l_response t_response;
    BEGIN
    generate_envelope(p_request, l_envelope);
    show_envelope(l_envelope);
    l_http_request := UTL_HTTP.begin_request(p_url, 'POST','HTTP/1.1');
    UTL_HTTP.set_header(l_http_request, 'Content-Type', 'text/xml');
    UTL_HTTP.set_header(l_http_request, 'Content-Length', LENGTH(l_envelope));
    UTL_HTTP.set_header(l_http_request, 'SOAPAction', p_action);
    UTL_HTTP.write_text(l_http_request, l_envelope);
    l_http_response := UTL_HTTP.get_response(l_http_request);
    UTL_HTTP.read_text(l_http_response, l_envelope);
    UTL_HTTP.end_response(l_http_response);
    l_response.doc := XMLTYPE.createxml(l_envelope);
    l_response.envelope_tag := p_request.envelope_tag;
    l_response.doc := l_response.doc.extract('/'||l_response.envelope_tag||':Envelope/'||l_response.envelope_tag||':Body/child::node()',
    'xmlns:'||l_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/envelope/"');
    -- show_envelope(l_response.doc.getstringval());
    check_fault(l_response);
    RETURN l_response;
    END;
    FUNCTION get_return_value(p_response IN OUT NOCOPY t_response,
    p_name IN VARCHAR2,
    p_namespace IN VARCHAR2)
    RETURN VARCHAR2 AS
    BEGIN
    RETURN p_response.doc.extract('//'||p_name||'/child::text()',p_namespace).getstringval();
    END;
    END soap_api;
    SHOW ERRORS
    CREATE OR REPLACE PACKAGE pkg_my_webservice IS
    FUNCTION call_myfunction(vp_parameter1 VARCHAR2,vp_parameter2 VARCHAR2) RETURN VARCHAR2;
    END pkg_my_webservice;
    CREATE OR REPLACE PACKAGE BODY pkg_my_webservice IS
    vg_funciton_fnc VARCHAR2(256):='ConversionRate';
    vg_ws_address VARCHAR2(255):='http://www.webservicex.net/CurrencyConvertor.asmx';
    FUNCTION call_myfunction(vp_parameter1 VARCHAR2,vp_parameter2 VARCHAR2)
    RETURN VARCHAR2 AS
    ol_req soap_api.t_request;
    ol_resp soap_api.t_response;
    BEGIN
    ol_req:=soap_api.new_request(vg_funciton_fnc,'xmlns="'||vg_ws_address||'"');
    soap_api.add_parameter(ol_req,'string1','partns:string',vp_parameter1);
    soap_api.add_parameter(ol_req,'string2','partns:string',vp_parameter1);
    ol_resp:=soap_api.invoke(ol_req,vg_ws_address,vg_funciton_fnc);
    RETURN soap_api.get_return_value(ol_resp,'result','xmlns:m="'||vg_ws_address||'"');
    END call_myfunction;
    END pkg_my_webservice;
    -----------------------------------------------------------------------------------------------------------------------------------

    Hi,
    The soap_api package internally uses the utl_http api. I used the utl_http package directly and it works for me. Below is the code for the call, you will have to substitute the variables to suit your setup..
    Hope this Helps
    Thanks
    CREATE OR REPLACE FUNCTION get_webservice_dets(p_emp_number IN VARCHAR2
    ,p_eff_date IN DATE)
    RETURN VARCHAR2
    IS
    lc_proc VARCHAR2(50) := 'get_webservice_dets';
    ln_error_stg NUMBER := 0;
    lc_eff_date VARCHAR2(50) := NULL;
    soap_request VARCHAR2(32767);
    soap_respond VARCHAR2(32767);
    -- HTTP variables
    req utl_http.req;
    resp utl_http.resp;
    -- Store the Webservice URL in a Profile Option and change for each environment
    lc_wsdl_url VARCHAR2(32767) := FND_PROFILE.VALUE('XXERP_WEBSRVC_URL');
    -- return Values
    lc_retval VARCHAR2(32767);
    lc_response VARCHAR2(32767);
    lc_xml_ext_str VARCHAR2(100) := '/env:Envelope/env:Body/OutputParameters/';
    lc_xml_ext_unit VARCHAR2(50) := '/text()';
    lc_xmlns_ns1_url VARCHAR2(240) := 'xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/XXERP_SOA_HCM_PKG/GET_SUPERVISOR_NO/"';
    lc_xmlns_env_url VARCHAR2(240) := 'xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"';
    lc_xmlns_xsi_url VARCHAR2(240) := 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"';
    lc_xmlns_url VARCHAR2(240) := 'xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/XXERP_SOA_HCM_PKG/GET_SUPERVISOR_NO/"';
    lc_xml_namespace VARCHAR2(5000) := lc_xmlns_env_url||' '||lc_xmlns_xsi_url||' '||lc_xmlns_url;
    lc_xmlns_soap_url VARCHAR2(240) := 'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"';
    lx_Response XMLTYPE;
    BEGIN
    ln_error_stg := 10;
    IF NVL(lc_wsdl_url,'X') <> 'X' THEN
    -- Format the date received as required by the Webservice i.e. - 'YYYY-MM-DDTHH:MI:SS+01:00'
    lc_eff_date := REPLACE(TRIM(TO_CHAR(TRUNC(p_eff_date),'YYYY-MM-DD HH:MI:SS')),' ','T')||'+01:00';
    -- Form a SOAP Envelope - Exact envelope can be obtained by invoking the above EndPoint URL in a browser session with required
    -- parameters and then clicking on the XML Source
    soap_request:= '<soap:Envelope '||lc_xmlns_soap_url||'>
    <soap:Body '||lc_xmlns_ns1_url||'>
    <ns1:InputParameters>
    <ns1:P_EMPLOYEE_NUMBER>'||p_emp_number||'</ns1:P_EMPLOYEE_NUMBER>
    <ns1:P_DATE>'||lc_eff_date||'</ns1:P_DATE>
    </ns1:InputParameters>
    </soap:Body>
    </soap:Envelope>';
    -- Initiate the HTTP request, don't forget to pass in the POST and HTTP/1.1
    req := UTL_HTTP.BEGIN_REQUEST(lc_wsdl_url, 'POST','HTTP/1.1');
    ln_error_stg := 20;
    -- Set the HTTP Request Headers
    UTL_HTTP.SET_HEADER(req, 'Content-Type', 'text/xml'); -- since we are dealing with plain text in XML documents
    ln_error_stg := 40;
    UTL_HTTP.SET_HEADER(req, 'Content-Length', LENGTH(soap_request));
    ln_error_stg := 50;
    -- Set the SOAP Action to the Operation Name
    -- The function Name <getSupervisorID> should match the Webservice Operation Name in SOA
    UTL_HTTP.SET_HEADER(req, 'SOAPAction','getSupervisorID'); -- required to specify this is a SOAP communication
    ln_error_stg := 60;
    -- Append the SOAP Envelope to the HTTP request Header
    UTL_HTTP.WRITE_TEXT(req, soap_request);
    ln_error_stg := 70;
    -- Fetch the HTTP response from the Webservice - This will contain the SOAP Envelope response
    -- that needs to be processed downstream
    resp := UTL_HTTP.GET_RESPONSE(req);
    ln_error_stg := 80;
    -- Extract the HTTP response and store in a String Variable
    -- READ_TEXT is a specific method exposed to read the SOAP envelope returned from Webservice
    -- READ_LINE will read the entire HTML response back from the Server..
    UTL_HTTP.READ_TEXT(resp, lc_retval);
    ln_error_stg := 90;
    -- Create an XML Document from the String returned by the HTTP response..
    lx_Response := SYS.XMLTYPE.CREATEXML(lc_retval);
    ln_error_stg := 110;
    -- If the response is not null then extract the string value of the required output parameter
    -- the env: tag needs to be qualified with a corresponding namespace.
    IF lx_Response IS NOT NULL THEN
    lc_response := lx_Response.extract(lc_xml_ext_str||'PERSON_ID'||lc_xml_ext_unit,lc_xml_namespace).getstringval();
    ELSE
    DBMS_OUTPUT.PUT_LINE('XMLTYPE Doc returns NULL !!');
    lc_response := NULL;
    END IF;
    ln_error_stg := 120;
    -- End the response, otherwise you get
    -- UTL_HTTP.TOO_MANY_REQUESTS exception after 5 tries
    UTL_HTTP.END_RESPONSE(resp);
    ELSE
    DBMS_OUTPUT.PUT_LINE('Web Service URL not populated, please provide a value for the Profile Option XXERP: Web Service URL');
    lc_response := NULL;
    END IF;
    RETURN lc_response;
    EXCEPTION
    WHEN UTL_HTTP.TOO_MANY_REQUESTS THEN
    UTL_HTTP.END_RESPONSE(resp);
    RETURN NULL;
    WHEN UTL_HTTP.END_OF_BODY THEN
    UTL_HTTP.END_RESPONSE(resp);
    RETURN NULL;
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('ERROR @'||ln_error_stg||': '||SQLERRM);
    UTL_HTTP.END_RESPONSE(resp);
    RETURN NULL;
    END get_webservice_dets;

  • Calling secured webservice from java

    Hi Experts,
    I am trying to call a secured webservice from java.
    I got the code to call a non secured web service in java.
    What changes do i need to do in this to call a secured webservice.
    Please help me.
    Thank you
    Regards
    Gayaz
    calling unsecured webservice
    package wscall1;
    import java.io.BufferedReader;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.StringBufferInputStream;
    import java.io.StringReader;
    import java.io.StringWriter;
    import java.io.Writer;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    import java.security.Permission;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.ParserConfigurationException;
    import org.apache.xml.serialize.OutputFormat;
    import org.apache.xml.serialize.XMLSerializer;
    import org.w3c.css.sac.InputSource;
    import org.w3c.dom.Document;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;
    public class WSCall2 {
    public WSCall2() {
    super();
    public static void main(String[] args) {
    try {
    WSCall2 ss = new WSCall2();
    System.out.println(ss.getWeather("Atlanta"));
    } catch (Exception e) {
    e.printStackTrace();
    public String getWeather(String city) throws MalformedURLException, IOException {
    //Code to make a webservice HTTP request
    String responseString = "";
    String outputString = "";
    String wsURL = "https://ewm52rdv:25100/Saws/SawsService";
    URL url = new URL(wsURL);
    URLConnection connection = url.openConnection();
    HttpURLConnection httpConn = (HttpURLConnection)connection;
    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    //Permission p= httpConn.getPermission();
    String xmlInput =
    "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ser=\"http://www.ventyx.com/ServiceSuite\">\n" +
    " <soapenv:Header>\n" +
    "     <soapenv:Security>\n" +
    " <soapenv:UsernameToken>\n" +
    " <soapenv:Username>sawsuser</soapenv:Username>\n" +
    " <soapenv:Password>sawsuser1</soapenv:Password>\n" +
    " </soapenv:UsernameToken>\n" +
    " </soapenv:Security>" + "</soapenv:Header>" + " <soapenv:Body>\n" +
    " <ser:GetUser>\n" +
    " <request><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
                "                        <GetUser xmlns=\"http://www.ventyx.com/ServiceSuite\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
                "                        <UserId>rs24363t</UserId>\n" +
                "                        </GetUser>]]>\n" +
    " </request>\n" +
    " </ser:GetUser>\n" +
    " </soapenv:Body>\n" +
    "</soapenv:Envelope>";
    byte[] buffer = new byte[xmlInput.length()];
    buffer = xmlInput.getBytes();
    bout.write(buffer);
    byte[] b = bout.toByteArray();
    String SOAPAction = "GetUser";
    // Set the appropriate HTTP parameters.
    httpConn.setRequestProperty("Content-Length", String.valueOf(b.length));
    httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
    httpConn.setRequestProperty("SOAPAction", SOAPAction);
    // System.out.println( "opening service for [" + httpConn.getURL() + "]" );
    httpConn.setRequestMethod("POST");
    httpConn.setDoOutput(true);
    httpConn.setDoInput(true);
    OutputStream out = httpConn.getOutputStream();
    //Write the content of the request to the outputstream of the HTTP Connection.
    out.write(b);
    out.close();
    //Ready with sending the request.
    //Read the response.
    InputStreamReader isr = new InputStreamReader(httpConn.getInputStream());
    BufferedReader in = new BufferedReader(isr);
    //Write the SOAP message response to a String.
    while ((responseString = in.readLine()) != null) {
    outputString = outputString + responseString;
    //Parse the String output to a org.w3c.dom.Document and be able to reach every node with the org.w3c.dom API.
    Document document = parseXmlFile(outputString);
    NodeList nodeLst = document.getElementsByTagName("User");
    String weatherResult = nodeLst.item(0).getTextContent();
    System.out.println("Weather: " + weatherResult);
    //Write the SOAP message formatted to the console.
    String formattedSOAPResponse = formatXML(outputString);
    System.out.println(formattedSOAPResponse);
    return weatherResult;
    public String formatXML(String unformattedXml) {
    try {
    Document document = parseXmlFile(unformattedXml);
    OutputFormat format = new OutputFormat(document);
    format.setIndenting(true);
    format.setIndent(3);
    format.setOmitXMLDeclaration(true);
    Writer out = new StringWriter();
    XMLSerializer serializer = new XMLSerializer(out, format);
    serializer.serialize(document);
    return out.toString();
    } catch (IOException e) {
    throw new RuntimeException(e);
    private Document parseXmlFile(String in) {
    try {
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    InputSource is = new InputSource(new StringReader(in));
    InputStream ins = new StringBufferInputStream(in);
    return db.parse(ins);
    } catch (ParserConfigurationException e) {
    throw new RuntimeException(e);
    } catch (SAXException e) {
    throw new RuntimeException(e);
    } catch (IOException e) {
    throw new RuntimeException(e);
    } catch (Exception e) {
    throw new RuntimeException(e);
    static {
    javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(new javax.net.ssl.HostnameVerifier() {
    public boolean verify(String hostname, javax.net.ssl.SSLSession sslSession) {
    if (hostname.equals("ewm52rdv")) {
    return true;
    return false;
    }

    Gayaz  wrote:
    What we are trying is we are invoking webservice by passing SOAP request and we will get soap response back.I understand what you're trying to do, the problem is with tools you're using it will take a while for you do anything a little away from the trivial... Using string concatenation and URL connection and HTTP post to call webservices is like to use a hand drill... It may work well to go through soft wood, but it will take a lot of effort against a concrete wall...
    JAX-WS and JAXB and annotations will do everything for you in a couple of lines and IMHO you will take longer to figure out how to do everything by hand than to learn those technologies... they are standard java, no need to add any additional jars...
    That's my thought, hope it helps...
    Cheers,
    Vlad

  • Calling the webservice twice - Duplicate entries

    Hi Experts,
    Scenario : SOAP Client -> Call Microsoft webservice -> XI JDBC Sync call-> Call Microsoft webservice.
    BPM Steps:
    1. Receive Step -> Get the SOAP Client request (Open S/A Bridge)
    2. Send Step -> Async call to Microsoft webservice  to update the log status.
    3. Send Step -> Sync call to JDBC
    5. Send Step -> Close the S/A bridge
    6. Send Step -> Call the Microsoft webservice to update the log status.
    Receiver Determination Steps
    1. SOAP Sender to BPM
    2. BPM(Async request) to 2 Log Business Service. I have mentioned the both business service under Configured Receivers section in Receiver Determination.
    3. BPM(Sync request) to JDBC
    Issue : The JDBC part works fine. Only problem with the Microsoft webservice. Twice it update the log table. ie. Twice it calls the Microsoft's each webservice.
    Please help me out, how to stop the second retry and let me know the above approach is correct or not.
    Thanks & Regards
    Sara

    Hi Sara,
    As per your info, Earlier you was trying to call both logging updates under one Sync/Async Bridge. But on Webservice side it will give you two responses and you will handling only one.
    In later case also you are handling only 1st response of Webservice call, but the another call is still open.
    Actually you are trying to built two Sync/Async Birdges. Which is not at all possible under one BPM.
    SAP have not recommended for it.
    Refer
    http://help.sap.com/saphelp_nw04/helpdata/en/43/65d4dab39b0398e10000000a1553f6/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/83/d2a84028c9e469e10000000a1550b0/content.htm
    You need to create two seperate interfaces for this.
    For e.g.
    1st will call the Webservice before updating the JDBC tables.
    2nd After updating the JDBC table you can again call the Webservice for updated logging status.
    Thanks
    Swarup
    Edited by: Swarup Sawant on Jun 2, 2008 8:50 AM

  • Sender adapter request response bean not working for calling a webservice

    Hi All,
    In PI 7.31, My scenario :  SOAP sender Asynch-> PI -> HTTP Receiver Sync ->take response to call another webservice  (SOAP)
    I have configured request response bean and response one way bean in the sender adapter to make this work.
    Attached the screenshot of the module config in  the sender soap adapter. The final response from HTTP has to be used to call another webservice (not sender webservice)
    This giving an error "couldn't retrieve binding values for sender to receiver etc etc ----------"
    Has anyone configured response one way bean to call a webservice to submit? If so, please share the configuration details. And let me know if I am doing anything wrong
    thx
    mike

    Hi Michael,
    I think the adapter type is for the receiver channel looking at the documentation SAP Library - SAP Exchange Infrastructure
    Have you checked your receiver channel doesn't belong to a party?
    I havent tried this bridge with the http_aae but looks to be problematic according with Michal comment here http://scn.sap.com/community/pi-and-soa-middleware/blog/2014/01/28/generic-pi-async-sync-bridge-configuration-for-any-adapters#comment-454463
    Regards.

  • Call a  Webservice method from DotNetApplication

    Hi all,
    I have created One web service using Axis. My WebServices are below:
    import java.util.*;
    public class NHLService {
      HashMap standings = new HashMap();
      public NHLService() {
        // NHL - part of the standings as per 04/07/2002
        standings.put("atlantic/philadelphia", "1");
        standings.put("atlantic/ny islanders", "2");
        standings.put("atlantic/new jersey", "3");
        standings.put("central/detroit", "1");
        standings.put("central/chicago", "2");
        standings.put("central/st.louis", "3");
      public String getCurrentPosition(String division, String team) {
        String p = (String)standings.get(division + '/' + team);
        return (p == null) ? "Team not found" : p;
    }Its name is NHLService.jws. Then I run this service in my localhost like this "http://localhost:8080/axis/NHLService.jws" It is running and show that
    There is a Web Service here
    Click to see the WSDL Now I can view the wsdl. Now I want to call this webservice method from DotNet Application.Please any one knows that can you guide me the steps.
    Thanks in Advance,
    Raj

    but i don't understand a thing...
    when i create a static stub client i link with the config-wsdl file the path of my webservices wdsl and the client compile and run well...
    why with the servlet i had to link .class file or jar file??
    thanks a loto

  • How to buid a jar in Jdeveloper, for a class that calls a webservice???

    Hello
    I have a project with a main class which calls a webservice,
    I deployed it in a jar file and add all necessary jars in the CONTRIBUTORS node in JAR Deplyment Profile wizard
    when I tried to run the jar in command window using the command : c:\java -cp ruba.jar mypackage.Main
    the following error results :
    javax.xml.rpc.JAXRPCException: javax.xml.soap.SOAPException: Unable to create SO
    AP Factory: Provider com.sun.xml.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl n
    ot found
    PLZ HELP it is URGENT

    THE PROBLEM IS SOLVED , i USED ECLIPSE INSTEAD OF JDEVELOPER AND THE JAR WORKED , IT IS A JDEVELOPER BUG, I AM NEVER GONE USE IT AGAIN :@

Maybe you are looking for

  • Dunning Report not printing

    Hi, I am trying to print the dunning report using F150 in Prod Server . I had even scheduled the run and I am getting in the status and printing complete, but when i go to SP01 for the spool I do not see the same. Advice me what might be the reason.

  • How to change the font for a PE51 form

    Hi, We are on ERP 2005 , MSS 1.0. A custom remuneration form has been created for printing paychecks. The same form is being used in ESS for employees to view their salary statement. However, the form displayed is not aligned and does not fit in the

  • DOS PCMCIA support for old Compaq Armada 1571DM

    Hi there, I have recently purchased an old Compaq Armada 1571DM for a project I'm currently in, which requires both portability and the availability of a couple of COM (serial) ports. The laptop comes with a single serial port, so I thought to add th

  • Sound blaster audigy ca0106 waltf sb0570

    Hi there could anyone help me to find driver for sound blaster audigy ca006 waltf sb0570 ... could not find it on internet .. if anyone have some direct link to download it please send it to my mail [email protected] thx a million ..

  • Use cookies or sessions or what?

    I am using frames on Web Site One, with a frame on Web Site One pointing to Web Site Two (I own both web sites). Problem: Web Site Two needs remember variables in the Web Site Two frame displayed on Web Site One. When I use cookies on Web Site Two, t