Leverage Inheritance Benefits in 'document/literal' Web Services

Greetings,
I have developed a document/literal web service that receives an object I created, say ParentObject.
I developed it under the assumption that once I create a web service for ParentObject, I'll be able to use the same web service for ChildObject as well, which is a sub-class from ParentObject. Unfortunately, it did not work.
Please correct me if I'm wrong; is it really not possible to leverage inheritance capabilities web services? And if it's not possible, what workaround(s) do you use in such scenarios when you don't want to create a new web service for each object type despite that they all have the same logic?
Your thoughts are highly appreciated.
Thanks in advance,
Ahmed Motaz

Jason, have you made any progress with CF7 and WS Security?
It doesn't seem like enough information on this is available. Is it
even possible? and how?

Similar Messages

  • Document Literal Web Service Stub Error

    I am using jdeveloper 9.0.3 (necessary because we are doing OAF) and have created a Document Literal Web Service Stub. The stub runs perfectly in Jdeveloper, but when I move it to our 9iAS server (1.0.2.2.2), I get the error that it can not find the class \oracle\jdeveloper\webservices\runtime\WrappedDocLiteralStub.
    On my local machine this file is located in jdev-rt.jar, which is in /jdevbin/jdev/lib. Is there a special way to package the web service so that the jar file is included? Or is there a patch I need to apply to the apps server?
    Any help would be much appreciated.

    I am using jdeveloper 9.0.3 (necessary because we are doing OAF) and have created a Document Literal Web Service Stub. The stub runs perfectly in Jdeveloper, but when I move it to our 9iAS server (1.0.2.2.2), I get the error that it can not find the class \oracle\jdeveloper\webservices\runtime\WrappedDocLiteralStub.
    On my local machine this file is located in jdev-rt.jar, which is in /jdevbin/jdev/lib. Is there a special way to package the web service so that the jar file is included? Or is there a patch I need to apply to the apps server?
    Any help would be much appreciated.

  • Document/literal web service with WSDL

    Hi
    I is so hard to get an easily written example of how to do a Document/literal web service in java, to generate a WSDL descripbing it and then deploying it on Apache.
    I first belived that I should use JAXM. But I think it is just SOAP and there is no way to generate a WSDL file for the JAXM service, or??
    It seems that u can to document/literal style using JAX-RPC, but this is VERY strange since RPC style is the direct opposite of Document style.
    well, well
    I would be very greatful for information here.
    regards
    /Rassol

    JWSDP 1.2 includes the WS-I sample application in JWSDP_HOME/wsi-sampleapp. Several components of
    this application use document-literal operations. The architecture of the application is described
    here http://ws-i.org/SampleApplications/SupplyChainManagement/2003-04/SCMArchitecture1.0-BdAD.pdf
    The WSDL for the services is availabe from URLs in the document.
    As you say, the trick is generating the WSDL for a new service. You have two options: 1. Modify
    existing WSDL yourself. This might be fairly easy, since the only major changes will be in the
    schema. Then use a tool to generate Java source code from the WSDL. 2. Use a tool to generate WSDL
    from source files.
    I prefer option 1 myself, since that gives me total control over the schema. It allows me to
    serialize certain parts of the SOAP message as body elements, others as attributes, and others as
    header elements. Then I use the Apache Axis tool WSDL2Java with the "-s" option to generate skeleton
    service files. One big advantage to this approach is that WSDL2Java generates JavaBean class for the
    types in the WSDL schema, so I don't need to build the SOAP message with SAAJ. A service client
    generates stubs and calls the service exactly as it would for an rpc/encoded service.
    wscompile also generates service files from WSDL if you give the "-gen:server" option, but I've only
    used Axis for my services.
    Here's a sample WSDL for a document/literal service you can modify as you need. I checked it with
    the WS-I testing tools to be sure it conforms to the WS-I Basic Profile 1.0a (available at www.ws-
    i.org). Notice that the processPo operation is a request-response type operation, even though it has
    a document/literal style. This follows the recommendations in the Basic Profile.
    Cheers,
    Mike
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions targetNamespace="http://www.ltree.com/wsdl/po" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:impl="http://www.ltree.com/wsdl/po" xmlns:intf="http://www.ltree.com/wsdl/po" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns1="http://www.ltree.com/types/po" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <wsdl:types>
      <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
              xmlns:tns1="http://www.ltree.com/types/po"
              xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
              targetNamespace="http://www.ltree.com/types/po"
              elementFormDefault="qualified">
         <xsd:import namespace="http://schemas.xmlsoap.org/soap/envelope/"
                     location="http://schemas.xmlsoap.org/soap/envelope/"/>
         <xsd:complexType name="LineItem">
             <xsd:sequence>
                 <xsd:element name="itemId" type="xsd:string"/>
                 <xsd:element name="quantity" type="xsd:int"/>
             </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="PurchaseOrder">
             <xsd:sequence>
                 <xsd:element name="customerName" type="xsd:string"/>
                 <xsd:element name="lineItem" type="tns1:LineItem"
                          minOccurs="1" maxOccurs="unbounded" />
             </xsd:sequence>
             <xsd:attribute name="purchaseOrderId" type="xsd:string" use="required"/>
         </xsd:complexType>
         <xsd:element name="purchaseOrder" nillable="true" type="tns1:PurchaseOrder"/>
         <xsd:complexType name="CallbackEndpoint">
             <xsd:attribute name="location" type="xsd:anyURI" use="required"/>
         </xsd:complexType>
         <xsd:element name="callbackEndpoint" nillable="false" type="tns1:CallbackEndpoint"/>
         <xsd:complexType name="PurchaseOrderAck">
             <xsd:sequence>
                 <xsd:element name="poId" type="xsd:string"/>
             </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="purchaseOrderAck" nillable="true" type="tns1:PurchaseOrderAck"/>
         <xsd:complexType name="InvalidCustomerNameException">
          <xsd:sequence>
           <xsd:element name="message" nillable="true" type="xsd:string"/>
           <xsd:element name="customerName" type="xsd:string"/>
          </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="invalidCustomerNameException" nillable="true"
                      type="tns1:InvalidCustomerNameException"/>
      </xsd:schema>
    </wsdl:types>
       <wsdl:message name="processPoRequest">
          <wsdl:part name="callbackEndpoint" element="tns1:callbackEndpoint"/>
          <wsdl:part name="purchaseOrder" element="tns1:purchaseOrder"/>
       </wsdl:message>
       <wsdl:message name="processPoResponse">
          <wsdl:part name="purchaseOrderAck" element="tns1:purchaseOrderAck"/>
       </wsdl:message>
       <wsdl:message name="invalidCustomerNameException">
          <wsdl:part name="fault" element="tns1:invalidCustomerNameException"/>
       </wsdl:message>
       <wsdl:portType name="PurchaseOrderHandler">
          <wsdl:operation name="processPo">
             <wsdl:input message="impl:processPoRequest" name="processPoRequest"/>
             <wsdl:output message="impl:processPoResponse" name="processPoResponse"/>
             <wsdl:fault message="impl:invalidCustomerNameException" name="invalidCustomerNameException"/>
          </wsdl:operation>
       </wsdl:portType>
       <wsdl:binding name="PurchaseOrderHandlerPortSoapBinding" type="impl:PurchaseOrderHandler">
          <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
          <wsdl:operation name="processPo">
             <wsdlsoap:operation soapAction="" style="document"/>
             <wsdl:input name="processPoRequest">
                <wsdlsoap:header message="impl:processPoRequest" part="callbackEndpoint" use="literal"/>
                <wsdlsoap:body parts="purchaseOrder" use="literal"/>
             </wsdl:input>
             <wsdl:output name="processPoResponse">
                <wsdlsoap:body use="literal"/>
             </wsdl:output>
             <wsdl:fault name="invalidCustomerNameException">
                <wsdlsoap:fault name="invalidCustomerNameException" use="literal"/>
             </wsdl:fault>
          </wsdl:operation>
       </wsdl:binding>
       <wsdl:service name="PurchaseOrderHandlerService">
          <wsdl:port binding="impl:PurchaseOrderHandlerPortSoapBinding" name="PurchaseOrderHandlerPort">
             <wsdlsoap:address location="http://localhost:8080/po/services/PurchaseOrderHandlerService"/>
          </wsdl:port>
       </wsdl:service>
    </wsdl:definitions>

  • Problem Generating Document/Literal Web Service

    Hi folks..
    I am currently using JDeveloper 10.1.3 (Preview Edition) and I am having trouble getting the Create Java Web Service wizard to work correctly when generating a document/literal web service. After going through the wizard selecting the appropriate settings to generate a document/literal web service from my implementation I get the following error during generation.
    oracle.j2ee.ws.common.tools.api.SeiValidationException
    oracle.j2ee.ws.common.processor.modeler.rmi.RmiModeler.modelPort(RmiModeler.java:587)
    oracle.j2ee.ws.common.processor.modeler.rmi.RmiModeler.buildModel(RmiModeler.java:455)
    oracle.j2ee.ws.common.processor.config.ModelInfo.buildModel(ModelInfo.java:160)
    oracle.j2ee.ws.common.processor.Processor.runModeler(Processor.java:76)
    oracle.j2ee.ws.common.tools.wscompile.CompileTool.run(CompileTool.java:510)
    oracle.j2ee.ws.tools.wsa.JavaToWsdlTool.createWSDL(JavaToWsdlTool.java:234)
    oracle.j2ee.ws.metadata.JavaWebServiceCompiler.processAnnotations(JavaWebServiceCompiler.java:313)
    oracle.j2ee.ws.metadata.JavaWebServiceCompiler.processAnnotations(JavaWebServiceCompiler.java:205)
    oracle.j2ee.ws.metadata.JavaWebServiceCompiler.processAnnotations(JavaWebServiceCompiler.java:131)
    oracle.j2ee.ws.tools.wsa.Util.processAnnotations(Util.java:77)
    oracle.jdeveloper.webservices.model.java.JavaGenerator.generateWSDLFromAnnotations(JavaGenerator.java:1188)
    oracle.jdeveloper.webservices.model.java.JavaGenerator.doGeneration(JavaGenerator.java:362)
    oracle.jdeveloper.webservices.model.Generator.generateImpl(Generator.java:330)
    oracle.jdeveloper.webservices.model.Generator.access$1000071(Generator.java:100)
    oracle.jdeveloper.webservices.model.Generator$1$ReturningRunnable.run(Generator.java:250)
    oracle.jdeveloper.webservices.model.GeneratorUI$GeneratorAction.run(GeneratorUI.java:344)
    oracle.ide.dialogs.ProgressBar.run(ProgressBar.java:526)
    java.lang.Thread.run(Thread.java:534)
    When I googled this error I actually get a hit for a thread here on this board, that looks VERY promising... but when I attempt to access it I get a message "Duscussion Forms Error" and I cant access it. (Very frustrating believe me.. :-)
    Any help that you can give would be appreciated...
    Thanks
    Dave

    Hi Dave,
    One reason to have the SeiValidationException is when you do not follow the java bean convention for getter/setter or some of the public methods you want to expose are not throwing the right execption.
    Using the command line utility genProxy [or the ant task] with the debug flag may give you some informations about the WSDL constructs WSA do not understand. Look at the following how-to to get started:
    http://www.oracle.com/technology/tech/java/oc4j/1013/howtos/how-to-ws-bottomup/doc/how-to-ws-bottomup.html
    If this does not help, can you share your WSDL with us ?
    Thanks,
    Eric

  • How to create document/literal web services with WLS7

    How do you create document/literal web services with WLS7 ( not workshop)
    - Is it possible with servicegen and stateless EJBs as the backend component?
    The default is RPC/Soap-encoded is there anyway to craft the web-services.xml
    to make it document/literal
    - Is it possible with the JMS-implemented web services - have not tried this yet
    - Is there another mechanism?

    That would be the <web-service> element in the web-services.xml file, of course.
    "Michael Wooten" <[email protected]> wrote:
    >
    Hi Rich,
    Try adding a style="document" attribute to the starting <web-service>
    element.
    The might be a way to get <servicegen> to do this for you, but I haven't
    found
    it yet :-)
    Regards,
    Mike Wooten
    "Rich Muth" <[email protected]> wrote:
    How do you create document/literal web services with WLS7 ( not workshop)
    - Is it possible with servicegen and stateless EJBs as the backend component?
    The default is RPC/Soap-encoded is there anyway to craft the web-services.xml
    to make it document/literal
    - Is it possible with the JMS-implemented web services - have not tried
    this yet
    - Is there another mechanism?

  • Question about document/literal web service

    Hello every body.
    I have some question about document/literal web service.
    I’ve been working with Axis before.
    Axis has four valid signatures for your message-style service methods:
    public Element [] method(Element [] bodies);
    public SOAPBodyElement [] method (SOAPBodyElement [] bodies);
    public Document method(Document body);
    public void method(SOAPEnvelope req, SOAPEnvelope resp);
    The same I am trying to do with WebLogic API for webservices.
    But when I am trying to test web service (public Document method (Document body); )
    I have serialized exceptions for org.w3c.dom.Document.
    Do I have to write a custom class for org.w3c.dom.Document serialization?
    If yes can you give me some idea or example?
    The all idea behind this web service is. I have just one web service and mane classes for XML processing. Depends what xml document will be during runtime, web service will be using different class for xml processing. It works fine with Axis, but in case of WebLogic I have some problem.
    One more question… How I have to call this web service from java client?
    I have seen this example http://www.manojc.com/?sample31 ,
    but this web service looks like (Document helloDom()). I need to send Document.
    This example works for Dynamic Proxy, but does not work for static call.
    Any ideas?? Thank in advance.

    Hi,
    I am getting a similar issue. I created a Document-style/literal webservice and deployed on Weblogic 9.2 . Then I generated client stubs using clientgen. I get the following exception stack trace:
    java.rmi.RemoteException: web service invoke failed: javax.xml.soap.SOAPException:
    failed to serialize class java.lang.Objectweblogic.xml.schema.binding.SerializationException: type mapping lookup failure on
    class=class com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl TypeMapping=TYPEMAPPING SIZE=3
    ENTRY 1:
    class: java.lang.Object
    xsd_type: ['http://xmlns.ozarkexpress.com/business/sell']:stns:echoDocumentResponse
    ser: weblogic.xml.schema.binding.internal.builtin.XSDAnyCodec@1125127
    deser: weblogic.xml.schema.binding.internal.builtin.XSDAnyCodec@18dfef8
    ENTRY 2:
    class: java.lang.Object
    xsd_type: ['http://xmlns.ozarkexpress.com/business/sell']:stns:echoDocument
    ser: weblogic.xml.schema.binding.internal.builtin.XSDAnyCodec@15e83f9
    deser: weblogic.xml.schema.binding.internal.builtin.XSDAnyCodec@2a5330
    ENTRY 3:
    class: java.lang.Object
    xsd_type: ['http://www.w3.org/2001/XMLSchema']:xsd:anyType
    ser: weblogic.xml.schema.binding.internal.builtin.XSDAnyCodec@bb7465
    deser: weblogic.xml.schema.binding.internal.builtin.XSDAnyCodec@d6c16c

  • Jdeveloper 10.1.2 document literal web service

    I need to write a document literal style web service to deploy to 10gAS 10.1.2.
    I don't really know where to start. I understand that JDeveloper 10.1.2 doesn't have any wizards that do that for me.
    Can anyone point me to example code or documentation on this?
    Thanks so much,

    Or can jdeveloper 10.1.3 create a document/literal web service that can be deployed in 10gAS 10.1.2?

  • Future of Document/Literal Web Services in CF

    I would like some clarification on the future of web services
    in CF. Right now I use CF 7 RPC/encoded CFCs which communicates
    with a Java client product currently using the older JWSDP 1.6 for
    web services. However the new Java SOA with WS-Security has been
    out for a while but I cannot convert to it because it doesn't
    support the outdated RPC/encoded format and CF 7 does not handle
    Document/Literal properly. CF 7 does not properly handle cfproperty
    element arrays in publishing Document/Literal web services (well
    documented problem with CF and the current Axis engine).
    However JavaSE 6 is nearing a release and it too will not
    support RPC/encoded or xsd_AnyType, nor will it support the current
    Document/Literal produced by CF 7 which does not properly handle
    arrays for cfproperty elements. This may become a major problem for
    my application as all the Java environments are upgraded.
    Therefore is this issue being addressed in the upcoming CF 8
    release?
    Will CF 8 be upgraded to Axis2 and properly support
    Document/Literal arrays for cfproperty elements?
    When might we expect a release of CF 8?
    Is it possible for CF 7 to use Axis2?
    CF has been a great product but I do need to assess some
    options if CF can not handle Document/Literal arrays for cfproperty
    elements within the near future.
    Thanks,
    Jason Baumgartner
    Indiana University

    Jason, have you made any progress with CF7 and WS Security?
    It doesn't seem like enough information on this is available. Is it
    even possible? and how?

  • Complex schemas using Document Literal Web Services

    I am trying to use document style web services and top down approach. I prepared a request, response and fault schema. In those schemas i have attributes defined. When i use WSCOMPILE, it does not generate proper classes, if the schema is too complex. It has worked only for simple schemas. Is there any other way of doing it?

    Hi!
    If you are using jwsdp 1.6 or earlier and I remember correctly this uses JAXB 1.0 for databinding, which doesnt support all schema constructs.. Even if I'm wrong on that, you could use the -f:nodatabinding option with wscompile and do your own databinding with for example xmlbeans, which supports all schema constructs and is far more flexible than jaxb 1.0 (= personal opinion ;-)
    good luck!
    /Ole

  • Document/literal web service

    Currently I deployed an rpc/encoded ejb web service.
    The ejb handles the request and response using Java methods. I can change this web service to document/literal by changing the style=document in Servicegen. Does this mean that I have to handle the
    SOAP/XML message programmatically? In other words, more work on my part. Any input would be much appreciated.
    Micx

    Currently I deployed an rpc/encoded ejb web service.
    The ejb handles the request and response using Java methods. I can change this web service to document/literal by changing the style=document in Servicegen. Does this mean that I have to handle the
    SOAP/XML message programmatically? In other words, more work on my part. Any input would be much appreciated.
    Micx

  • Problem with document/literal web services

    Hi,
    I need to publish a document\literal WSDL for a web service on my OC4J 10.1.2.2 because my app has an interface with a .NET system.
    I generated the WSDL with JDEV 10.1.3.3 and tried to deploy it on an OC4J 10.1.2 using JDEV 10.1.2.
    The deployment worked fine but when I'm trying to access the web service with the generated stub I'm getting the following message:
    "These methods do not conform to the restrictions imposed by the web service implementation"
    and then a list of these methods.
    Later I tried to remove the parameters from the methods and regenerated the WSDL and it worked fine, but I need the methods with the parameters.
    What can I do?
    Thanks

    Jason, have you made any progress with CF7 and WS Security?
    It doesn't seem like enough information on this is available. Is it
    even possible? and how?

  • 10gAS 10.1.2 document literal web service

    I need to write a document literal style web service to deploy to 10gAS 10.1.2.
    I don't really know where to start. I references to mostly j2ee 1.4, which doesn't help me.
    Can anyone point me to example code or documentation on this?
    Thanks so much,

    Hello,
    We do not support any tool in 10.1.2 to create Document Literal WS. you can do it by modifying manually the WSDL and the implementation of the service.
    Another solution would be to use Apache Axis deployed in OracleAS 10.1.2, and when moving to 10.1.3/J2EE 1.4 you can use the WSDL to move the implementation to JAX-RPC using a top down generation.
    Regards
    Tugdual Grall

  • How do I create a "document-centric" Web Service?

    By document-centric I'm talking about receiving a SOAP message on the server-side, where the initial parsing and security processing (this aspect is very important) is performed but then allowing the developer to access the delivered "payload", i.e. the XML, and perform whatever mapping/processing that is required without automatically mapping to the "standard" auto-generated Java objects.
    It is important that the client receives the "full" complex WSDL and can therefore generate their proxy classes with whatever tool (or language) that is appropriate.
    On the server side we do not want to create hundreds (if not thousands) of Java Bean clases as we already have the legacy code to map XML to Java. The idea is that JAX-RPC only instantiates the SOAPElements that represent the "raw" message, or, if possible, doesn't instantiate any objects whatsoever.
    I've spent many days now trying to find a single well-worked example for this type of Web Service without success - many, many references of the style "..and you can then create a document style web service.." but without the all important "how".
    From what I've read a custom type-mapping and/or serializer/deserializer could be the answer but again no good, solid examples are forthcoming.
    Another alternative seems to be to create the server side stub-classes using a "dummy" WSDL with the elements set to "anyType" but then distribute the "genuine" WSDL to the clients - we've got a simple example of the kind working but I don't like the idea of "tricking" the system in this way.
    I'm working with WASD 5.1, which in theory conforms with JAX-RPC so any ideas offered here should also apply in that environment.
    Has ANYONE successfully created a service of this type?
    Any help with this issue would be very much appreciated and rewarded (with Duke Dollars of course).
    Chris.

    Chris,
    I too noticed that most vendors take the RPC centric approach. Its because most of the industry examples of how WSs were used were simple enough to implement using RPC and anything more (document literal) would add to the complexity of implementation. This is something that is feared by many developers, especialy the .Net crowd who seem to want everything done through a wizard menu interface and don't care about other WS implementations at all.
    This is sort of changing. J2EE 1.4 is WS-I compliant, so when you compile server side ties from WSDL you can specify a document literal option and WS-I compliance. This gives you access to the SOAPElement objects. There's still issues with going between W3C DOM and SOAP elements but that's just API inconvenience, not a show stopper. As the inudustry develops more complex WSs we will see the vendors change their tools to better support this...
    Anyway, some more help...
    I use the the following wscompile options to build from WSDL for document literal WSs.
    wscompile.bat -d . -nd . -s . -f:documentliteral -f:wsi -keep -model model.gz -import config.xml
    wscompile.bat -d . -nd . -s . -f:documentliteral -f:wsi -keep -model model.gz -gen:server config.xml
    My "wrapper" elements look like this...
    <xs:element name="AComplexXMLResponse">
         <xs:complexType>
              <xs:sequence>
                   <xs:element ref="myNS:MYComplexXMLType"/>
              </xs:sequence>
         </xs:complexType>
    </xs:element>
    If I do this:
    <xs:element name="ASimpleXMLResponse">
         <xs:complexType>
              <xs:sequence>
                   <xs:element name="AName" type="xs:string"/>
              </xs:sequence>
         </xs:complexType>
    </xs:element>
    I still get the JAXRPC language bindings to a string, but in my case I don't really care. This may well be different for you.
    What I do to manage these elements is to split up the WSDL, WS wrapper element definitions and actual data XML schema definitions into separate documents. This means I have a WSDL which IMPORTS my message schema (this is where I define wrappers for in and out XML) which INCLUDES the actual DATA XML schema that I have.
    The WSDL import looks like this:
    <types>
         <xs:schema>
              <xs:import namespace="http://schemaURI" schemaLocation="./relativePath/WrapperElementSchema.xsd"/>
         </xs:schema>
    </types>
    The wrapper element schema has:
    <xs:include schemaLocation="./ActualDataSchema.xsd"/>
    This way I can easily replace the wrapper documents with just anyType references if something doesn want to play nice. The data schema file and the WSDL stay the same. This minimises the impact on what you have to change in your distribution. This is important as the WSDL is often generated on the fly by your WS environment and so can not be easily changed once you build your WSs, but the schema files it references are easily changed without affecting your code.
    Another reason for the wrapper elements was a JWSDP 1.2 issue (I don't know if this has been fixed in 1.3), where if you had the same method parameter signature in a web service (the parameters it took were the same XML types, for instance if you have an add and update methods for the same document input) JWSDP would get confused at runtime. It did not take account of the SOAP action that came along with the request to determine which operation to call. It just took the incoming XML, saw that it was of a certain type and it passed it to the first operation that took this element, which is VERY wrong. By using the wrapper elements, I could give all my input and output elements for each method different names (I used a naming stragegy that appended a 'request' or 'response' string to the method name to form a method parameter element name. This is a pain in the ass, but works and does wonders for interoperability with other WS vendors. Like I said before, I've got this working with JWSDP, BEA and .Net servers and clients.
    Hope this helps,
    If you think there is a real need for a public HOWTO on this, I could write one with a full step by step guideline that shows where I broke my legs getting this stuff to work. But this would eat into my sleep time :-/ TO JUDGE INTEREST I call on all people interested in a tutorial to respond to this thread (esp people involved with the JWSDP WS tutorial documentation). If I get 5 or more different people responding I will loose some sleep for the good of this community. Otherwise, I will just try to help you when I have time to read the forums.
    Kuba

  • AxisFault seen while invoking document style web service

    I am seeing the following stacktrace when I try to invoke a document-style web service.
    <partnerRole name="MyWebService1_Role">
    <ServiceName>{http://idm.oracle.com/}MyWebService1</ServiceName>
    <PortType>{http://idm.oracle.com/}MyWebService1</PortType>
    <Address>null</Address>
    </partnerRole>
    <conversationId>bpel://localhost/default/ProvisioningFromDAS~1.0/4202-BpInv0-BpSeq0.3-3</conversationId>
    <properties>{}</properties>
    </partnerLink>
    <2005-09-06 09:23:37,650> <DEBUG> <default.collaxa.cube.ws> <WSIFInvocationHandler::invoke> Fault happened
    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
    faultSubcode:
    faultString: caught exception while handling request: expected element is missing: {http://idm.oracle.com/}attribute
    faultActor:
    faultNode:
    faultDetail:
    {http://xml.apache.org/axis/}stackTrace:caught exception while handling request: expected element is missing: {http://idm.oracle.com/}attribute
    at org.collaxa.thirdparty.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
    at org.collaxa.thirdparty.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
    at org.collaxa.thirdparty.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1083)
    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 Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    What could this mean ?

    Hi,
    I am getting a similar issue. I created a Document-style/literal webservice and deployed on Weblogic 9.2 . Then I generated client stubs using clientgen. I get the following exception stack trace:
    java.rmi.RemoteException: web service invoke failed: javax.xml.soap.SOAPException:
    failed to serialize class java.lang.Objectweblogic.xml.schema.binding.SerializationException: type mapping lookup failure on
    class=class com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl TypeMapping=TYPEMAPPING SIZE=3
    ENTRY 1:
    class: java.lang.Object
    xsd_type: ['http://xmlns.ozarkexpress.com/business/sell']:stns:echoDocumentResponse
    ser: weblogic.xml.schema.binding.internal.builtin.XSDAnyCodec@1125127
    deser: weblogic.xml.schema.binding.internal.builtin.XSDAnyCodec@18dfef8
    ENTRY 2:
    class: java.lang.Object
    xsd_type: ['http://xmlns.ozarkexpress.com/business/sell']:stns:echoDocument
    ser: weblogic.xml.schema.binding.internal.builtin.XSDAnyCodec@15e83f9
    deser: weblogic.xml.schema.binding.internal.builtin.XSDAnyCodec@2a5330
    ENTRY 3:
    class: java.lang.Object
    xsd_type: ['http://www.w3.org/2001/XMLSchema']:xsd:anyType
    ser: weblogic.xml.schema.binding.internal.builtin.XSDAnyCodec@bb7465
    deser: weblogic.xml.schema.binding.internal.builtin.XSDAnyCodec@d6c16c

  • Document style web service receive and send org.w3c.Element

    All,
    I have created a simple Document-oriented web service and deployed to a standalone OC4J container using the following code:
    ********************* Interface ***********************
    import org.w3c.dom.*;
    interface PrimeNumberService
    //method to check the primality of the number passed in Element variable
    public Element isPrime(Element e) ;
    ******************** Implementation *******************
    @version 1.0
    Development Environment : Oracle9i JDeveloper
    Name of the File : PrimeNumberServiceImpl.java
    Creation/Modification History :
    13-Apr-2002 Created
    Overview:
    This class file defines methods to implement PrimeNumberWebService.
    The method isPrime() is exposed by the Web Service.
    import org.w3c.dom.*;
    import oracle.xml.parser.v2.*;
    import java.io.*;
    public class PrimeNumberServiceImpl implements PrimeNumberService
    public PrimeNumberServiceImpl()
    * This method is exposed by the Web Service to check if the number is
    * prime. It extracts the number for input element and checks if it is
    * prime or not and return the output in the XML Element.
    * The input element is of the form <number>23</number>
    public Element isPrime(Element e)
    // define an XML Element that will be returned to the client
    Element processedEl=null;
    try{
    // get the first clild of input element
    Node enode = e.getFirstChild();
    //get the value of input element and parse it
    String value= enode.getNodeValue();
    double number = Double.parseDouble(value);
    String answer=null;
    // check if the input number is prime
    answer = checkPrime(number);
    // create element from the answer
    processedEl =createElement(answer);
    }catch(Exception ex){
    ex.printStackTrace();
    return null;
    // return output to client
    return processedEl;
    * This method creates an XML element from the input string values and return it
    * The Element is of the form <answer>value</answer>
    private Element createElement(String value){
    // create a Document object
    Document xmldoc = new XMLDocument();
    // create an element with name "answer"
    Element e1 = xmldoc.createElement("answer");
    // append the element to document object
    xmldoc.appendChild(e1);
    // create a Text object from input values and append it to above element
    Text t = xmldoc.createTextNode(value);
    e1.appendChild(t);
    return (Element)xmldoc.getFirstChild();
    * This method check if the input number is prime or not
    private String checkPrime(double num){
    //For a prime number mod(power(2,number),number) is equal to 2
    if ( Math.IEEEremainder( Math.pow(2.0,num) ,num)==2){
    System.out.println ("the number is: " + num);
    return "The number " + num + " is prime";}
    else{
    System.out.println ("the number is: " + num);
    return "The number " + num + " is not prime";}
    ************************ Generated WSDL ***************
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="PrimeNumberService"
    targetNamespace="http://tempuri.org/PrimeNumberService.wsdl"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://tempuri.org/PrimeNumberService.wsdl"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" >
    <documentation>
    WSDL for Service: PrimeNumberService, generated by Oracle WSDL toolkit (version: 1.1)
    </documentation>
    <types>
    <schema targetNamespace="http://tempuri.org/PrimeNumberService.xsd" xmlns:tns="http://tempuri.org/PrimeNumberService.xsd" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
    </types>
    <message name="isPrimeOutput">
    <part name="return" element="xsd:any"/>
    </message>
    <message name="isPrimeInput">
    <part name="param0" element="xsd:any"/>
    </message>
    <portType name="PrimeNumberServicePortType">
    <operation name="isPrime">
    <input message="tns:isPrimeInput"/>
    <output message="tns:isPrimeOutput"/>
    </operation>
    </portType>
    <binding name="PrimeNumberServiceBinding" type="tns:PrimeNumberServicePortType">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
    <operation name="isPrime">
    <soap:operation soapAction="urn:PrimeNumberService/isPrime"/>
    <input>
    <soap:body use="literal" namespace="urn:PrimeNumberService"/>
    </input>
    <output>
    <soap:body use="literal" namespace="urn:PrimeNumberService"/>
    </output>
    </operation>
    </binding>
    <service name="PrimeNumberService">
    <port name="PrimeNumberServicePort" binding="tns:PrimeNumberServiceBinding">
    <soap:address location="http://hp-xeon-01:9799/primenumberws/primenumberService"/>
    </port>
    </service>
    </definitions>
    I get the following error when trying to deploy:
    Error:
    [Error ORABPEL-10902]: compilation failed
    [Description]: XML parsing failed because "undefined part element.
    In WSDL at "http://hp-xeon-01:9799/primenumberws/primenumberService?WSDL", message part element "{http://www.w3.org/2001/XMLSchema}any" is not defined in any of the schemas.
    Please make sure the spelling of the element QName is correct and the WSDL import is complete.
    [Potential fix]: n/a.
    Please let me know what I'm doing wrong.
    Regards,
    Jeff

    Here is the error code that I'm getting at the invoke:
    <remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
    <part name="code">
    <code>Client</code>
    </part>
    <part name="summary">
    <summary>parsing error: oracle.xml.parser.v2.XMLParseException: Expected name instead of /.</summary>
    </part>
    <part name="detail">
    <stackTrace xmlns="http://xml.apache.org/axis/">parsing error: oracle.xml.parser.v2.XMLParseException: Expected name instead of /. at org.collaxa.thirdparty.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221) at org.collaxa.thirdparty.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128) at org.collaxa.thirdparty.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1083) 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 Source) 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.collaxa.thirdparty.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:226) at org.collaxa.thirdparty.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:645) at org.collaxa.thirdparty.apache.axis.Message.getSOAPEnvelope(Message.java:424) at org.collaxa.thirdparty.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62) at org.collaxa.thirdparty.apache.axis.client.AxisClient.invoke(AxisClient.java:173) at org.collaxa.thirdparty.apache.axis.client.Call.invokeEngine(Call.java:2725) at org.collaxa.thirdparty.apache.axis.client.Call.invoke(Call.java:2708) at org.collaxa.thirdparty.apache.axis.client.Call.invoke(Call.java:1738) at com.collaxa.cube.ws.wsif.providers.axis.WSIFOperation_ApacheAxis.invokeAXISMessaging(WSIFOperation_ApacheAxis.java:1902) at com.collaxa.cube.ws.wsif.providers.axis.WSIFOperation_ApacheAxis.invokeRequestResponseOperation(WSIFOperation_ApacheAxis.java:1464) at com.collaxa.cube.ws.wsif.providers.axis.WSIFOperation_ApacheAxis.executeRequestResponseOperation(WSIFOperation_ApacheAxis.java:1029) at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:455) at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:359) at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:161) at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__invoke(BPELInvokeWMP.java:605) at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:317) at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:195) at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3501) at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1906) at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75) at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:101) at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:186) at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5604) at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1301) at com.collaxa.cube.engine.ejb.impl.CubeEngineBean.createAndInvoke(CubeEngineBean.java:117) at com.collaxa.cube.engine.ejb.impl.CubeEngineBean.syncCreateAndInvoke(CubeEngineBean.java:146) at ICubeEngineLocalBean_StatelessSessionBeanWrapper0.syncCreateAndInvoke(ICubeEngineLocalBean_StatelessSessionBeanWrapper0.java:483) at com.collaxa.cube.engine.delivery.DeliveryHandler.initialRequestAnyType(DeliveryHandler.java:489) at com.collaxa.cube.engine.delivery.DeliveryHandler.initialRequest(DeliveryHandler.java:425) at com.collaxa.cube.engine.delivery.DeliveryHandler.request(DeliveryHandler.java:132) at com.collaxa.cube.ejb.impl.DeliveryBean.request(DeliveryBean.java:82) at IDeliveryBean_StatelessSessionBeanWrapper22.request(IDeliveryBean_StatelessSessionBeanWrapper22.java:479) at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:101) at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:65) at ngDoInitiate.jspService(_ngDoInitiate.java:220) at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:347) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:509) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:413) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:810) at com.evermind.server.http.ServletRequestDispatcher.include(ServletRequestDispatcher.java:121) at com.evermind.server.http.EvermindPageContext.include(EvermindPageContext.java:267) at displayProcess.jspService(_displayProcess.java:303) at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:347) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:509) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:413) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:810) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322) at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:220) at com.collaxa.cube.fe.DomainFilter.doFilter(DomainFilter.java:138) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:649) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112) at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192) at java.lang.Thread.run(Thread.java:534)</stackTrace>
    </part>
    </remoteFault>

Maybe you are looking for

  • E4200 No Longer Sees My Iomega 1TB External Hard Drive

    Hello - I had an Iomega 1TB External Hard Drive connected to my E4200 router.  I had shares confgured and they were properly running on the network. As of yesterday, this all stopped working. The router does not see the drive; it is as though it is n

  • Win 8.1 Upgrade on Yoga 13...My Experience

    I have difficulty waiting for the "official" Microsoft release of the 8.1 upgrade on Oct 18 so I decided to use my official Technet 8.1 ISO to do the job now.  The process was even easier than I imagined but I did have to tweak a few things after the

  • Upgrade to OS 7, can't open pdf files in safari.

    Since updating ipad to OS 7 I can't open any pdf links in safari, just get a blank page. It's working fine on my iphone which also has OS 7. Have tried everything but now totally perplexed, anyone got an answer?

  • Batch Determination at SO Level

    Dear All, I have configured batch determination at SO level. The batch number auto appears. But, I have a problem where the system choose batch number which is already allocated to the shipping area deliveries. I am not sure whether it is the setting

  • E5 and WLAN-Cellular network connections

    Hello, I'm a belgian nokia utilisator.  I have'nt a good english so be cool with me please I've a problem with WLAN. My E5 ask me connect him on a WLAN network but I'd like connect it on my cellular network sometimes. How do for my E5 don't ask me fo