Excpetion handling in web services

Hi!
What happens when returning a custom exception in a web service, can I run instanceof on
SOAPFaultException)ex.getCause();
how do I know what kind of Exception it is?
Thanks,
I.

instanceof, different catch blocks

Similar Messages

  • Fault Handling in Web Services

    Hi,
    Can anyone please point me to any document which explains about the fault handling in Web Services using Bottom-up Approach?
    Thanks

    Can you give some further information?
    Do you want to throw a fault an your webservice and you are asking how this fault is seen by the service requestor? If you throw a exception it is mapped to
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="RuntimeFault" targetNamespace="http://schemas.oracle.com/bpel/extension" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/">
    <message name="RuntimeFaultMessage">
    <part name="code" type="xsd:string"/>
    <part name="summary" type="xsd:string"/>
    <part name="detail" type="xsd:string"/>
    </message>
    </definitions>
    Have you tried
    http://www.oracle.com/technology/products/ias/bpel/pdf/orabpel-Training-Segment06.pdf?
    This is top down but perhaps you can learn from it.

  • Request handling in web service

    Hi guys,
    is there a way to "handle" the request within a web service (like HTTPrequest obj in servlets)? i.e. for retrieving the context and so on .. ?
    thanks to anybody who will answer me
    J.

    Hi guys,
    is there a way to "handle" the request within a web
    service (like HTTPrequest obj in servlets)? i.e. for
    retrieving the context and so on .. ?
    thanks to anybody who will answer me
    J.See if this works for you. Have your service impl class also
    implement javax.xml.rpc.server.ServiceLifecycle. Then you'll
    have to add an init() and destroy() method (see the javadocs).
    If you declare a ServletEndpointContext field, then in
    init you can do
    public void init(Object context) {
    myServletEndpointContext = (ServletEndpointContext) context;
    and in subsequent methods do
    myHttpSession = servletEndpointContext.getHttpSession()
    (don't do this part in init, do it during business method calls)
    Cheers,
    Bobby

  • Handling Java Web Service Exception in ABAP

    Hi
    I have created a web service in Java using NWDS.
    Which has a businessMethod which throws a Exception based on certain business logic.
    I have consumed this  Web Service Method using .NET Client.
    i am able to catch the Exception and get the Exceltion Message.
    But when i try to consume the same web service Method in ABAP,
    i am not getting the Exception Message .
    The Method call works fine.
    What am i missing here ?
    regards
    Rajendra

    Hi,
    Upon further investigation and comparison of the custom exception object (generated during consumer proxy creation for a CUSTOM web service) with a standard exception object(generated during consumer proxy creation for a STANDARD web service) I found that the sub-elements of the exception structure errorPart are not available in the custom exception object (and one of these sub-elements is the message text).
    Call Stack,ExceptionName and MessageText Elements are missing in the errorPart node of Exception
    Node. as seen in the ABAP Exception structure generated.
    Queries:
    1.       Are there any standards which need to be followed when coding exceptions in the Java web service for consumption in ABAP such that all sub-elements of the exception object are also created in ABAP during the proxy creation?
    2.       Can we get the Java code for a standard web service available in SAP Netweaver? Asking the same as the exception object created for the standard web service RoomABAPWS contains the sub-elements. Getting the Java code of the same will be very helpful in resolving the issue.
    Regards
    Rajendra

  • Exception handling in Web Services

    Hi all,
    I am exposing ejb2-based webservices and am unable to find a way to throw checked Exceptions.
    Could anyone provide resources about how to leverage SOAP/WSDL features of exception handling (i.e. wsdl:fault tag)?
    Thanks, regards
    Vincenzo

    Hi, thanks for replying
    actually on saphelp I found that supported Exceptions are:
    java.lang.Exception -> no fault generated
    java.rmi.RemoteException -> deploy refused with explicit error (RemoteException not allowed in ejb business method signature)
    java.lang.Throwable -> doesn't seem very appropriate to use such a root class
    Any suggestion?
    Thanks, regards
    Vincenzo

  • Implementation of session handling for using web services

    Hi,
    I would like to use session handling in web services using ABAP stack in order to start the session with an user login function followed by other RFC calls till a user logout. So far, I found only the following help note in the SAP online help:
    Interface Profile
    In the interface profile, choose the required processing type: Stateful or Stateless.
    A stateful service retains its status within the framework of a HTTP session throughout several calls form the same service consumer. The standard value for services is Stateless.If you require stateful communication, you can choose this instead.
    [http://help.sap.com/saphelp_nwpi71/helpdata/de/45/25291b5a2657c0e10000000a1553f7/content.htm |http://help.sap.com/saphelp_nwpi71/helpdata/en/45/25291b5a2657c0e10000000a1553f7/content.htm]
    Please, could someone explain me the further required steps of SAPs session handling idea cause just settting the status to stateful is still not the solution itself...
    Regards,
    Jens

    Now, I found the possible scenarios, suggest by SAP Help, regarding security for Web Services ([http://help.sap.com/saphelp_nw73/helpdata/en/48/8ebbba66be06b2e10000000a42189b/content.htm|http://help.sap.com/saphelp_nw73/helpdata/en/48/8ebbba66be06b2e10000000a42189b/content.htm]):
    - SAML & WS SecureConversation -> SSO
    - WS Security UsernameToken & WS SecureConversation
    - User ID and Password in HTTP Header & HTTPS
    - SAP Authentication Assertion Ticket & HTTPS -> SSO
    - X.509 SSL Client Certificate through HTTPS
    - WS Security: X.509 Certificate Authentication at Message Level
    Are scenarios with SSO the solution for creating sessions!?

  • Error in E-rec web Service and BSP

    Hi Folks
    We are facing an issue with Requisition Management in E-rec. A workflow is triggered for requisition management and goes to approver. The workitem does not appear in the UWL of the user however when we monitor the log, it shows the workitem is with approver and without any error.
    Our problem is it does not show the workitem in the approver's UWL and when we test the approval serivce and handler service in SICF, it gives us the following message
    1.Service Name : wshandler (REQUEST HANDLER FOR WEB SERVICES)
    Error in Web service execution
    The launch handler was called with an incomplete parameter list
    2.Service name :  hrrcf_approval (Recruiter: Approval of Status Change)
    Error message : Calling the BSP page was terminated due to an error.
    SAP Note
    The following error text was processed in the system:
    BSP Exception: Das Objekt default.htm in der URL /sap/bc/bsp/sap/hrrcf_approval/default.htm?sap-client=100&sap-sessioncmd=open ist nicht gültig.
    Please guide us, how to fix.
    Regards
    Netweaver team

    Hi,  Were you able to resolve this issue?
    IF not then please go to transaction wf_handcust and maintain the entries under Launch Handler, Callback Handler and callback Dialog. I had the same issue and your's was the only related message I could search in SDN so thought of sharing the solution.
    Regards,
    VInay

  • Simple Web Service fails

    This one is clearly me doing something stupid.
    in c:\inetpub\wwwroot I have these two files:
    DropShip.cfc
    <cfcomponent>
      <cffunction name="NewOrder" returnType="string" access="remote" output="false">
        <cfargument name="Version" type="string" required="yes">
        <cfreturn "Ack">
      </cffunction>
    </cfcomponent>
    TestShip.cfm
    <cfinvoke
      webservice = "http://localhost/DropShip.cfc?WSDL"
      method = "NewOrder"
      timeout="10"
      returnVariable = "request.WebOrder">
      <cfinvokeargument name="Version" value="1.0" />
      </cfinvoke>
    <cfoutput>[#request.WebOrder#]</cfoutput>
    and the result I get back is:
    Web service operation NewOrder with parameters {Version={1.0}} cannot be found.
    If I remove the <cfargument> and <cfinvokeargument> it works.
    So what silly thing am I doing wrong?  Pile on, I can take it!

    Not sure where I found this but I think its designed to accomplish what you're after...
    hth,
    D.
    <cfcomponent displayname="BaseWebService" output="false" hint="This handles core web service features.">
        <cffunction name="Init" access="public" returntype="any" output="false" hint="Returns an initialized web service instance.">
            <cfreturn THIS />
        </cffunction>
        <cffunction name="RebuildStubFile" access="remote" returntype="void" output="false" hint="Rebuilds the WSDL file at the given url.">
            <cfargument name="Password" type="string" required="true" />
            <cfif NOT Compare( ARGUMENTS.Password, "sweetlegs!" )>
                <cfset CreateObject
                            "java",
                            "coldfusion.server.ServiceFactory"
                        ).XmlRpcService.RefreshWebService
                                GetPageContext().GetRequest().GetRequestUrl().Append( "?wsdl" ).ToString()
                />
            </cfif>
            <cfreturn />
        </cffunction>
    </cfcomponent>
    AND then to use it ...
    <cfcomponent displayname="Essence_WebServices" output="false" hint="Interactivity is handled exclusively in this CFC." extends="BaseWebService">
        <cffunction name="RebuildStubFile" access="remote" returntype="void" output="false" hint="Returns an initialized web service instance.">
            <CFSet super.RebuildStubFile('sweetlegs!') />
        </cffunction>
    </CFComponent>
    Message was edited by: GrandNagel

  • Soap Router versus Web Service Servlet

    Hello:
    I am trying to understand the fundamental difference between a SOAP Router versus
    Web Service Servlet?. In websphere there is a concept called WSG(Web Service
    Gateway) on which we can configure an handler to intercept the incoming soap requests.
    But in weblogic I do not think we can configure any handler on Web Service Servlet.
    So I think for this very purpose you have this soap router right ?. If this is
    correct then does the soap router will forward the call to the Web Service Servlet
    which implements the soap engine.
    Please clarify,
    Thanks,
    Vijay

    Hello,
    Right, today there is not a global handler that can be configured;
    however you can do servlet filter or check out an early access SOAP
    Router[1] from Manoj.
    Could you give us a snapshot of your use case?
    Thanks,
    Bruce
    [1]
    http://manojc.com/?router/readme.html
    Vijay Cherukumudi wrote:
    >
    Hello:
    I am trying to understand the fundamental difference between a SOAP Router versus
    Web Service Servlet?. In websphere there is a concept called WSG(Web Service
    Gateway) on which we can configure an handler to intercept the incoming soap requests.
    But in weblogic I do not think we can configure any handler on Web Service Servlet.
    So I think for this very purpose you have this soap router right ?. If this is
    correct then does the soap router will forward the call to the Web Service Servlet
    which implements the soap engine.
    Please clarify,
    Thanks,
    Vijay

  • Can a BPEL process wait for a second web service call

    Hi,
    My BPEL process is an asynchronous process, so the first web service call kicks off an instance of the process.
    what i want is somewhere down in the process i can put a "receive" shape to pause the process and wait for another web service call to come in, once the "receive" shape gets the second web service call, the process continues on.
    Is that a valid thing to do on BPEL?
    i don't seem to be able to get it working.
    i could change the WSDL for the BPEL process to publish two operations, the default "initiate" and another one called "continue", they both accept the same type of request message.
    but when i test it, the BPEL process just can't accept message at the second operation, it always creates a new instance to handle the web service calls, even when the call is targeting "continue" operation.
    Any ideas?
    Thanks in advance!

    I was just about to give up after the last post but then the "pick" shape hit my eye somehow ("thank God", that's all i can say)
    and it did the trick, the "pick" shape can wait for an incoming call from a partner link.
    so what i can achieve is this,
    the first web service call sends some thing like
    <Root><CorrelationId>1</CorrelationId><Content>first name</Content></Root>
    on the "initiate" operation, just like calling an "initiate" method in java code
    the BPEL instance gets initiated, reaches the "pick" shape and stops
    then a second web service call comes in as
    <Root><CorrelationId>1</CorrelationId><Content>last name</Content></Root>
    on the "continue" operation, again just like calling a "continue" method
    it works!

  • Unchecked exceptions in web services

    Hi all.
    How are unchecked exceptions handled in web services ? Are they automatically mapped as SOAPFaults in the SOAP return message ?

    With JAX-WS and JAX-RPC , yes.

  • Web service handler could not called in client web service

    Hi All,
    I have two web service ServiceA & ServiceB and both implemented in weblogic.
    The ServiceA is SSL enable and protocol is https which is not published by me.
    The ServieB is my web service(wls8.1) and act as client for ServiceA.
    My problem is when i hit my service, its not able set the handler when it call ServiceA but it is invoking the service and giving application exception like authentication error.
    My service file:
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.handler.HandlerInfo;
    import javax.xml.rpc.handler.HandlerRegistry;
    import javax.xml.rpc.handler.soap.SOAPMessageContext;
    import weblogic.webservice.client.SSLAdapterFactory;
    import weblogic.webservice.client.WLSSLAdapter;
    public class HelloService {
    String wsdl = "https://188.122.123.23/RemoetService?WSDL";
    static {
    SSLAdapterFactory factory = SSLAdapterFactory.getDefaultFactory();
    WLSSLAdapter adapter = (WLSSLAdapter) factory.getSSLAdapter();
    adapter.setTrustedCertificatesFile("D:\\lib\\certs
    cacerts");
    factory.setDefaultAdapter(adapter);
    System.setProperty("weblogic.xml.encryption.verbose","true");
    System.setProperty("weblogic.xml.signature.verbose","true");
    System.setProperty("weblogic.webservice.verbose","true");
    public String sayHello(String user) {
    RemoteService_Impl service = new RemoteService_Impl(wsdl);
    RemotePortType port = service.getRemoteServicePort1();
    String namespace = service.getServiceName()
    .getNamespaceURI();
    QName portName = new QName(namespace,
    "RemoteServicePortType");
    HandlerRegistry reg = service.getHandlerRegistry();
    List handlerList = new ArrayList();
    Map map = new HashMap();
    map.put("Username", "user1");
    map.put("Password", "pwd1");
    HandlerInfo info = new HandlerInfo();
    info.setHandlerClass(WSClientHandler .class);
    info.setHandlerConfig(map);
    handlerList.add(info);
    reg.setHandlerChain(portName,(List)handlerList);
    RemoteServiceResponse = port.callMe(name);
    My Handler file:
    package com.test;
    import java.util.Map;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.handler.Handler;
    import javax.xml.rpc.handler.HandlerInfo;
    import javax.xml.rpc.handler.MessageContext;
    import javax.xml.rpc.handler.soap.SOAPMessageContext;
    import javax.xml.soap.Name;
    import javax.xml.soap.SOAPElement;
    import javax.xml.soap.SOAPEnvelope;
    import javax.xml.soap.SOAPException;
    import javax.xml.soap.SOAPHeader;
    import javax.xml.soap.SOAPHeaderElement;
    public class WSClientHandler implements Handler {
    private HandlerInfo handlerInfo;
    public WSClientAuthenticateHandler(){}
    public void init(HandlerInfo hi) {
    System.out.println("Handler init");
    handlerInfo = hi;
    public void destroy() {
    System.out.println("Handler destroy method called");
    handlerInfo = null;
    public QName[] getHeaders() {
    System.out.println("Handler Header method called");
    try {
    Map map = handlerInfo.getHandlerConfig();
    QName[] headers = handlerInfo.getHeaders();
    System.out.println(" Config :"+map);
    for(int i=0;i<headers.length;i++) {
    System.out.println(headers.getLocalPart()+" "+
    headers.toString()+" "+headers.getNamespaceURI());
    }catch(Exception e) {
    e.printStackTrace();
    return handlerInfo.getHeaders();
    public boolean handleRequest(MessageContext mc) {
    SOAPMessageContext smc = (SOAPMessageContext) mc;
    System.out.println("Calling handler class.....................");
    try {
    SOAPEnvelope se = smc.getMessage().getSOAPPart().getEnvelope();
    System.out.println("Calling handler class.....................");
    SOAPHeader soapHeader = se.getHeader();
    Name headerName = se.createName("Security","wsse","http://schemas.xmlsoap.org/ws/2002/07/secext");
    SOAPHeaderElement headerElement = soapHeader.addHeaderElement(headerName);
    SOAPElement element = headerElement.addChildElement(se.createName("UsernameToken", "wsse", "http://schemas.xmlsoap.org/ws/2002/07/secext"));
    element.addChildElement(se.createName("Username", "wsse","http://schemas.xmlsoap.org/ws/2002/07/secext")).addTextNode("testuser");
    element.addChildElement(se.createName("Password", "wsse","http://schemas.xmlsoap.org/ws/2002/07/secext")).addTextNode("testpwd");
    System.out.println("Calling handler class.....................");
    System.out.println("** Request: \n "se.toString()"\n");
    }catch(SOAPException e) {
    e.printStackTrace();
    return true;
    /** * Specifies that the SOAP response message be logged to a
    * log file before the
    * * message is sent back to the client application
    * that invoked the Web service.
    public boolean handleResponse(MessageContext mc) {
    System.out.println("Handler Response method called");
    SOAPMessageContext messageContext = (SOAPMessageContext) mc;
    System.out.println("** Response: \n"messageContext.getMessage().toString()"\n");
    return true;
    /** * Specifies that a message be logged to the log file if a SOAP fault is
    * * thrown by the Handler instance.
    public boolean handleFault(MessageContext mc) {
    SOAPMessageContext messageContext = (SOAPMessageContext) mc;
    System.out.println("** Fault: \n"messageContext.getMessage().toString()"\n");
    return true;
    Please need help here.
    Thanks in Advance,
    pps

    I have tested static client calling using handler simple above service and found the issues.
    QName portName = new QName(namespace,
    "*RemoteServicePortType*");
    The above line code has created the issues,becuase in wsdl file ( given similar wsdl file).
    <?xml version="1.0"; encoding="UTF-8"?>
    <definitions name="HelloService"
    targetNamespace="http://www.ecerami.com/wsdl/HelloService.wsdl"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://www.ecerami.com/wsdl/HelloService.wsdl"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <message name="SayHelloRequest">
    <part name="firstName" type="xsd:string"/>
    </message>
    <message name="SayHelloResponse">
    <part name="greeting" type="xsd:string"/>
    </message>
    *<portType name="RemoteServicePortType">*
    <operation name="sayHello">
    <input message="tns:SayHelloRequest"/>
    <output message="tns:SayHelloResponse"/>
    </operation>
    </portType>
    <binding name="Hello_Binding" type="tns:*RemoteServicePortType*">
    <soap:binding style="rpc"
    transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="sayHello">
    <soap:operation soapAction="sayHello"/>
    <input>
    <soap:body
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:examples:helloservice"
    use="encoded"/>
    </input>
    <output>
    <soap:body
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:examples:helloservice"
    use="encoded"/>
    </output>
    </operation>
    </binding>
    <service name="Hello_Service">
    <port binding="tns:Hello_Binding" name="*RemoteServicePortType1*">
    <soap:address
    location="http://host1:8080/soap/servlet/rpcrouter"/>
    </port>
    <port binding="tns:Hello_Binding" name="*RemoteServicePortType2*">
    <soap:address
    location="http://host2:8080/soap/servlet/rpcrouter"/>
    </port>
    <port binding="tns:Hello_Binding" name="*RemoteServicePortType3*">
    <soap:address
    location="http://host3:8080/soap/servlet/rpcrouter"/>
    </port>
    <port binding="tns:Hello_Binding" name="*RemoteServicePortType4*">
    <soap:address
    location="http://host4:8080/soap/servlet/rpcrouter"/>
    </port>
    </service>
    </definitions>
    From the above WSDL, I have four port name (port binding="tns:Hello_Binding" name="*RemoteServicePortType1*) which is not matching with PortType (portType name="*RemoteServicePortType*")
    even i have iterated from getPorts() method and used to invoke the service.But handler was not calling when i invoke.
    Please guide me here how i specify correct portname which can call Handler class also.
    Thanks in advance,
    pps

  • Web service handler could not registered/called in client web service

    Hi Expert,
    I have two web service ServiceA & ServiceB and both implemented in weblogic.
    The ServiceA is SSL enable and protocol is https which is not published by me.
    The ServieB is my web service(wls8.1) and act as client for ServiceA.
    My problem is when i hit my service, its not able set the handler when it call ServiceA but it is invoking the service and giving application exception like authentication error.
    My service file:
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.handler.HandlerInfo;
    import javax.xml.rpc.handler.HandlerRegistry;
    import javax.xml.rpc.handler.soap.SOAPMessageContext;
    import weblogic.webservice.client.SSLAdapterFactory;
    import weblogic.webservice.client.WLSSLAdapter;
    public class HelloService {
    String wsdl = "https://188.122.123.23/RemoetService?WSDL";
    static     {
              SSLAdapterFactory factory =                SSLAdapterFactory.getDefaultFactory();
              WLSSLAdapter adapter = (WLSSLAdapter)     factory.getSSLAdapter();
              adapter.setTrustedCertificatesFile("D:\\lib\\certs\\cacerts");
              factory.setDefaultAdapter(adapter);
              System.setProperty("weblogic.xml.encryption.verbose","true");
              System.setProperty("weblogic.xml.signature.verbose","true");
              System.setProperty("weblogic.webservice.verbose","true");
         public String sayHello(String user) {
              RemoteService_Impl service = new RemoteService_Impl(wsdl);
              RemotePortType port = service.getRemoteServicePort1();
              String namespace = service.getServiceName()
                        .getNamespaceURI();
              QName portName = new QName(namespace,
                        "RemoteServicePortType");
              HandlerRegistry reg = service.getHandlerRegistry();
              List handlerList = new ArrayList();
              Map map = new HashMap();
              map.put("Username", "user1");
              map.put("Password", "pwd1");
              HandlerInfo info = new HandlerInfo();
              info.setHandlerClass(WSClientHandler .class);
              info.setHandlerConfig(map);
              handlerList.add(info);
              reg.setHandlerChain(portName,(List)handlerList);
              RemoteServiceResponse = port.callMe(name);
    My Handler Class:
    package com.test;
    import java.util.Map;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.handler.Handler;
    import javax.xml.rpc.handler.HandlerInfo;
    import javax.xml.rpc.handler.MessageContext;
    import javax.xml.rpc.handler.soap.SOAPMessageContext;
    import javax.xml.soap.Name;
    import javax.xml.soap.SOAPElement;
    import javax.xml.soap.SOAPEnvelope;
    import javax.xml.soap.SOAPException;
    import javax.xml.soap.SOAPHeader;
    import javax.xml.soap.SOAPHeaderElement;
    public class WSClientHandler implements Handler {
         private HandlerInfo handlerInfo;
         public WSClientAuthenticateHandler(){}
         public void init(HandlerInfo hi) {   
              System.out.println("Handler init");
              handlerInfo = hi;
         public void destroy() {
              System.out.println("Handler destroy method called");
              handlerInfo = null;
         public QName[] getHeaders() {
              System.out.println("Handler Header method called");
              try     {
                   Map map = handlerInfo.getHandlerConfig();
                   QName[] headers = handlerInfo.getHeaders();
                   System.out.println(" Config :"+map);
                   for(int i=0;i<headers.length;i++)     {
                        System.out.println(headers.getLocalPart()+" "+
                        headers[i].toString()+" "+headers[i].getNamespaceURI());
              }catch(Exception e)     {
                   e.printStackTrace();
              return handlerInfo.getHeaders();
         public boolean handleRequest(MessageContext mc) {   
              SOAPMessageContext smc = (SOAPMessageContext) mc;
              System.out.println("Calling handler class.....................");
              try     {
              SOAPEnvelope se =      smc.getMessage().getSOAPPart().getEnvelope();
              System.out.println("Calling handler class.....................");
         SOAPHeader soapHeader = se.getHeader();
         Name headerName = se.createName("Security","wsse","http://schemas.xmlsoap.org/ws/2002/07/secext");
         SOAPHeaderElement headerElement = soapHeader.addHeaderElement(headerName);
         SOAPElement element = headerElement.addChildElement(se.createName("UsernameToken", "wsse", "http://schemas.xmlsoap.org/ws/2002/07/secext"));
         element.addChildElement(se.createName("Username", "wsse","http://schemas.xmlsoap.org/ws/2002/07/secext")).addTextNode("testuser");
         element.addChildElement(se.createName("Password", "wsse","http://schemas.xmlsoap.org/ws/2002/07/secext")).addTextNode("testpwd");
         System.out.println("Calling handler class.....................");
                   System.out.println("** Request: \n "+se.toString()+"\n");
              }catch(SOAPException e)     {
                   e.printStackTrace();
              return true;
         /** * Specifies that the SOAP response message be logged to a
         * log file before the
         * * message is sent back to the client application
         * that invoked the Web service.
         public boolean handleResponse(MessageContext mc) {  
              System.out.println("Handler Response method called");
              SOAPMessageContext messageContext = (SOAPMessageContext) mc;
              System.out.println("** Response: \n"+messageContext.getMessage().toString()+"\n");
              return true;
         /** * Specifies that a message be logged to the log file if a SOAP fault is
         * * thrown by the Handler instance.
         public boolean handleFault(MessageContext mc) {   
              SOAPMessageContext messageContext = (SOAPMessageContext) mc;
              System.out.println("** Fault: \n"+messageContext.getMessage().toString()+"\n");
              return true;
    Please need help here.
    Thanks in Advance,
    pps

    I have tested static client calling using handler simple above service and found the issues.
    QName portName = new QName(namespace,
    *"RemoteServicePortType");*
    The above line code has created the issues,becuase in wsdl file ( given similar wsdl file).
    <?xml version="1.0"; encoding="UTF-8"?>
    <definitions name="HelloService"
    targetNamespace="http://www.ecerami.com/wsdl/HelloService.wsdl"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://www.ecerami.com/wsdl/HelloService.wsdl"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <message name="SayHelloRequest">
    <part name="firstName" type="xsd:string"/>
    </message>
    <message name="SayHelloResponse">
    <part name="greeting" type="xsd:string"/>
    </message>
    <portType name="*RemoteServicePortType*">
    <operation name="sayHello">
    <input message="tns:SayHelloRequest"/>
    <output message="tns:SayHelloResponse"/>
    </operation>
    </portType>
    <binding name="Hello_Binding" type="tns:*RemoteServicePortType*">
    <soap:binding style="rpc"
    transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="sayHello">
    <soap:operation soapAction="sayHello"/>
    <input>
    <soap:body
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:examples:helloservice"
    use="encoded"/>
    </input>
    <output>
    <soap:body
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:examples:helloservice"
    use="encoded"/>
    </output>
    </operation>
    </binding>
    <service name="Hello_Service">
    +<port binding="tns:Hello_Binding" name="*RemoteServicePortType1*">+
    +<soap:address+
    location="http://host1:8080/soap/servlet/rpcrouter"/>
    +</port>+
    +<port binding="tns:Hello_Binding" name="*RemoteServicePortType2*">+
    +<soap:address+
    location="http://host2:8080/soap/servlet/rpcrouter"/>
    +</port>+
    +<port binding="tns:Hello_Binding" name="*RemoteServicePortType3*">+
    +<soap:address+
    location="http://host3:8080/soap/servlet/rpcrouter"/>
    +</port>+
    +<port binding="tns:Hello_Binding" name="*RemoteServicePortType4*">+
    +<soap:address+
    location="http://host4:8080/soap/servlet/rpcrouter"/>
    +</port>+
    </service>
    </definitions>
    From the above WSDL, I have four port name (port binding="tns:Hello_Binding" name="*RemoteServicePortType1*) which is not matching with PortType (portType name="*RemoteServicePortType*")
    even i have iterated from getPorts() method and used to invoke the service.But handler was not calling when i invoke.
    Please guide me here how i specify correct portname which can call Handler class also.
    Thanks in advance,
    pps

  • Web Service Error handling in JDev 11g

    Hi,
    I followed the steps on this tutorial: "Use JDeveloper 11g to Create a Data Control From a Web Service"
    http://www.oracle.com/technology/obe/obe11jdev/11/wsdc/wsdc.htm
    In this tutorial, under the section "Running the Page", you will see the image where an error message is displayed - "SoapException - Server was unable to process your request...."
    I also get this error when I follow the tutorial's steps. If I repeatedly press the GetWeatherByZipCode commandButton, the message goes away and I get the data in the table as expected.
    What I'd like to do is not show the end user this error, but instead eat the error and retry the request a few times. If after a few tries, I still get the error, then I can show the end user a nicer message.
    How do I do this? Any documentation you can point me too would be appreciated. I'm new to the 'bindings' layer. I usually use JavaBeans/managed beans.
    I'm using JDeveloper 11g (Main build from Oct 15th)
    Thanks,
    Jeanne

    I've read about binding to #{adfFacesContext.initialRender} to not call the web service on initial render which is what you are probably talking about.
    However, I get this error even after the first time I've displayed the page. I've heard that you cannot rely on web services always coming back to you with data ((e.g., like Twitter's data - that was the example I was given at a recent Google Tech Talk) . I need to handle the case where I get an error from the web service and I retry calling the web service behind the scenes so the end user is unaware. This is what I want to do. I can retry a few times, then give up, then pop up a nice error.
    Thanks,
    Jeanne

  • Error Handling in a web service

    Hi,
    We are going through the process of producing some test web services, and was wondering if there is a way of handling errors so that a more meaningful message can be output instead of a SOAP Exception.
    For example if a number was passed in that was invalid, such as a negative number when only positive would be allowed. Is it possible to output a message that would say something like
    'Number input must be positive'
    instead of this type of error
    [SOAPException: faultCode=SOAP-ENV:Server; msg=ORA-06502: PL/SQL: numeric or value error
    ORA-06512: at &quot;CDDEV.SQUARE_ROOT&quot;, line 6
    ORA-06512: at line 1
         java.lang.String mypackage3.Square_rootStub.get_square_root(java.math.BigDecimal)
              Square_rootStub.java:68
         void mypackage3.Class1.main(java.lang.String[])
              Class1.java:15
    This example was done using a PL/SQL web service, but equally using Java if you throw an exception for a negative number you get a NaN type error.
    Thanks
    Gary

    As the error is thrown by the PL/SQL Java wrapper, you possibly could capture it on the server side and throw a more meaningful message. What is happening is that java.sql.SQLException thrown on the server side by the Java PL/SQL wrappers is wrapped into a SOAP fault.
    If you were to catch it yourself before propagating it back, you could replace the string. Unfortunately, the java.sql.SQLException is strewn about the generated code so it is hard to isolate - it isn't exactly straight forward. Another avenue to consider might be to wrapper the stored procedure code Java wrapper itself and write your own exception handling where you set the string explicitly (remember the string value set in any exception is what is passed back in the SOAP fault).
    None of these are perfect, but perhaps they might give you some ideas ...
    Mike.

Maybe you are looking for

  • Importing SAP Roles in CMC

    HI when I importing SAP Roles in CMC  there is an error, following is the error information: CMALLC:rc=27>Connect from SAP gateway to RFC server failed Connect_PM GWHOST=192.168.1.66, GWSERV=sapgw00,SYSNR=00 Location SAP-Gateway on host saptest/sapgw

  • Is there a fix for this stupid theme cand ringtone...

    Hey guys is there a fix for the 6233 to stop the default ringtones changing back when you change the theme? It does my head in. this phone is full of bugs i am sure of it.

  • Simplest way to update a news box?

    I am looking for the easiest way to update a scrolling text box. Ideally I would be able to write the text I wanted in a Microsoft Word document, then store the file on the server with the rest of my site files. The site, upon loading, would use that

  • How to read from 256GB PCIe-based flash storage

    The logic board on the new 15 inch macbook pro retina is busted. I need to recover the data from my 256GB PCIe-based flash storage. Since the macbook pro doesnt boot up - there is no way for me to recover this data. It would be great if there is way

  • I cannot access the iTunes store on my PC.

    I cannot access the iTunes store from my PC; it starts to load and then stops, sometimes there are words and lines and other times it is just blank. All other features are working fine. I have run a diagnostic test, reinstalled  and disabled the fire