Using doc/literal wrapped?

I'm working on a J2EE 1.4 web application that is required to be portable accross as many different app servers as possible. We're adding web services to the applciation, so am looking for a portable approach.
I decided upon using J2EE 1.4 (so JAX-RPC 1.1), doc/literal wrapped, and using JWSDP 1.6 to generate interface types from the WSDL, in "wsi,unwrap" mode. This works fine on JBoss 4.0.4. However when running the same code on WebLogic 9.2, the SOAP requests are invalid because WebLogic generates the wrapper tags twice. For example:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<b><m:Search xmlns:m="http://www.abm-uk.com/abmpegasus/v4.0/gms">
<m:Search></b>
<Item>
<m:BarCode>1234</m:BarCode>
</Item>
<Item>
<m:BarCode>9876</m:BarCode>
</Item>
<Item>
<DPCI>
<m:DepartmentNumber>010</m:DepartmentNumber>
<m:ClassNumber>11</m:ClassNumber>
<m:ItemNumber>4444</m:ItemNumber>
</DPCI>
</Item>
<b></m:Search>
</m:Search></b>
</soapenv:Body>
</soapenv:Envelope>
Is this a known issue with WebLogic? Or does WebLogic perhaps not support the JAX-RPC 1.1 "unwrap" mode?

As I've investigated the issue some more, I've found that the real issue is receiving an attachment on the SOAP response from the BPEL process. Using a Doc/Lit-Wrapped WSDL, I can receive a request with an attachment, and add it to outgoing requests successfully. But when I do a straight copy from the request message to the response message (Echo Service), the response contains the correct "href" attribute but there is no attachment, and moreover, no MIME multipart message is returned.
NOTE: I was successful in using an RPC/Literal WSDL to accomplish the successful echo of the attachment.
Also, when looking in the OPMN logs, I see the following line for the RPC-based BPEL process, but not for the Doc/Lit:
<2009-11-23 13:43:35,684> <DEBUG> <attachment.collaxa.cube.engine> <CXBinaryDataHandler::createDataSource> for binary location=uuid:aaa091d17e1b5545:67c00c53:1252285bf07:-7fc2
<2009-11-23 13:43:35,716> <DEBUG> <attachment.collaxa.cube.engine.data> <ConnectionFactory::getConnection> GOT CONNECTION 1 Autocommit = false
<2009-11-23 13:43:35,716> <DEBUG> <attachment.collaxa.cube.engine> <CXBinaryDataHandler::createDataSource> for binary location=uuid:aaa091d17e1b5545:67c00c53:1252285bf07:-7fc1
and the "binary location" value corresponds with the "href" attribute seen in the BPEL audit logs.

Similar Messages

  • Encryption of body's first child (method name) in Doc Literal Wrapped

    G'day all,
    I created a sample, where the service requires an encrypted input element (body's first child), which is the method name in document literal wrapped web services.
    I added few more operation to the SEI to make it more interesting scenario. It worked rightly.
    I am curious to know how WebService engine picks the security policy rightly? Since the on the wire shows EncryptedData element instead of input message name.
    Also, I added @Policy annotation description on the Impl Class level. Is it going to work or fail if I add different @Policy annotations to each WebMethod level and have encryption of the input element?
    With Regards,
    Mayank

    Hi
    The following link has information on using the Policy annotations
    http://edocs.bea.com/wls/docs100/webserv_sec/message.html#wp210258
    Ajay

  • How to generate doc/lit/wrapped services from existing wsdl?

    Hello,
    I am using workshop 10.1 to generate webservices from existing wsdl files from workshop 8.1. The existings webservices are based on an xmlbean utility project.
    When I generate the webservice from the existing wsdl file it generates automatically services with doc/lit/bare operations. I found in the known issues that this combination is not supported in combination with xmlbeans.
    See: CR283457
    XBeans are not supported as parameters or return type for doc/lit/bare operations.
    Use of Xbeans as a parameter or return type with doc/lit/bare bindings is not supported in operations or callbacks and will result in a failure during deployment.
    Platform: All
    Workaround: Use doc/lit/wrapped for services that use XBeans as parameters or return types.
    The workaround state to use doc/lit/wrapped for services. My questions is how to do that since workshop has all control over the generation of the webservices? ?:|
    Thanks in advance,
    Martijn Baels
    Software Architect
    www.leanapps.com

    Hi Martijn
    If you do generate web service from the wsdl on a 9.2 project, it always uses jax-rpc types and there's no xmlbeans involved.
    If the wsdl is in the schemas folder and the xmlbeans builder is on, then you also have xmlbeans types created by the builder they aren't being used by the web service. You will still have problems, because some of the xmlbeans types may conflict with the jax-rpc types.
    so when we generate webservice from a wsdl it will never use xmlbeans type, even if the xml builder is on, because WLS doesn't support start from wsdl with xmlbeans types.
    Can you please attach the wsdl and the steps so I can replicate and see the issue?
    Thanks
    Vimala

  • Documentation for doc literal processing

    I'm struggling with an existing that uses doc literal services, but I can't get it to work in oc4j 10g preview.
    I've tried the doc_lit demo that Oracle provides -- loading the WSDL from the original source (ws-i.org) works fine, but trying to load it locally produces errors. The first error is a complaint that the WSDL doesn't define a service, so I added the service as suggested in another thread. However, at that point although the first pass through wsa generates things, it does not generate the correct type classes, so the second pass (update-impl) through wsa fails.
    I'm confused as to why the WSDL processing is different depending on whether it's loaded from ws-i.org or the filesystem. And I'm confused about how the WSDL should properly look to generate the type classes.
    Any pointers to documentation I may have missed, or any other clues or help would be very much appreciated.

    I'm looking for the same thing -
    Were you able to location any documentation?
    I've been trying to get my hands on the documentation
    for the C4. Sun's doc site does not have this product
    listed at all. The product documentation link
    (http://docs.sun.com/app/docs/prod/1878#hic) just
    returns " The requested item could not be found."
    I've even tried opening up a case with Sun. First,
    the support people had no idea what the C4 was. After
    3 days and 3 support engineers, I finally found one
    who understood what this product was, but I was then
    told that getting the documentation would be on a
    time and materials basis. I'd rather not have to pay
    $400+ for documentation that should be on their
    website, just like all their other equipment. I'm
    currently using the Quantum PX502 documentation as a
    reference, but I'd really like to see Sun specific
    documentation.
    Any ideas?
    Thanks.I'm looking for the same thing -
    Were you able to location any documentation?

  • Problem with DII client for Doc/Literal with non built-in type in WL8.1 Sp2

    Hello,
    I have been trying to make this DII client for doc/literal using non built-in type to work for 2 days now.
    Any help/input will be greatly appreciated. I have added the code and wsdl below.
    BTW this is using the code first approach.
    Works perfectly fine with the clientgen generated stubs. But not with DII.
    With the stubs, following is the SOAP envelope.
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <env:Header/>
    <env:Body>
    <n1:getType xmlns:n1="http://www.aeb.com/wlws">
         <n2:id xmlns:n2="java:com.aeb.types">XYS</n2:id>
         <n3:name xmlns:n3="java:com.aeb.types">Name</n3:name>
    </n1:getType>
    </env:Body>
    </env:Envelope>
    With DII (using the serializer/deserializer generated by clientgen),
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <env:Header/>
    <env:Body>
    <n1:TestType xmlns:n1="java:com.aeb.types">
         <n1:id>ABC</n1:id>
         <n1:name>Some Name</n1:name>
    </n1:TestType>
    </env:Body></env:Envelope>
    Exception
    javax.xml.rpc.soap.SOAPFaultException: Unable to find a matching Operation for this remote invocation
    <n1:TestType xmlns:n1="java:com.aeb.types">
    <n1:id>ABC</n1:id>
    <n1:name>Some Name</n1:name>
    </n1:TestType>.
         Please check your operation name.
         at weblogic.webservice.core.ClientDispatcher.receive(ClientDispatcher.java:313)
         at weblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:144)
         at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:457)
         at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:443)
         at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:558)
         at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:411)
         at com.amgen.webservice.clients.DocClient.callService(DocClient.java:83)
         at com.amgen.webservice.clients.DocClient.main(DocClient.java:35)
    Client
    System.setProperty("javax.xml.rpc.ServiceFactory","weblogic.webservice.core.rpc.ServiceFactoryImpl");
    System.setProperty("weblogic.webservice.verbose", "true");
    String targetNamespace = "http://www.aeb.com/wlws";
    ServiceFactory factory = ServiceFactory.newInstance();
    QName serviceName = new QName(targetNamespace, "DocWebservice");
    QName portName = new QName(targetNamespace, "DocWebservicePort");
    QName operationName = new QName(targetNamespace, "getType");
    Service service = factory.createService(serviceName);
    TypeMappingRegistry registry = service.getTypeMappingRegistry();
    TypeMapping mapping = registry.getTypeMapping(SOAPConstants.URI_NS_SOAP_ENCODING);
    mapping.register(TestType.class, new QName("java:com.aeb.types","TestType"), new TestTypeCodec(), new TestTypeCodec());
    Call call = service.createCall();
    call.setOperationName(operationName);
    call.setPortTypeName(portName);
    call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean(true));
    call.setProperty(Call.SOAPACTION_URI_PROPERTY, "");
    call.setProperty(Call.OPERATION_STYLE_PROPERTY, "document");
    call.addParameter("testType", new QName("java:com.aeb.types","TestType"), TestType.class, ParameterMode.IN);
    call.setReturnType(new QName("java:com.aeb.types", "TestType"),TestType.class);
    call.setTargetEndpointAddress("http://localhost:7001/wlws/DocWebservice");
    TestType type = new TestType();
    type.setId("ABC");
    type.setName("Some Name");
    TestType res = (TestType) call.invoke(new Object[] { type });
    System.out.println(res.getName());
    TestType.java
    package com.aeb.types;
    import java.io.Serializable;
    public class TestType implements Serializable {
         private String id;
         private String name;
         public String getId() {
              return id;
         public void setId(String id) {
              this.id = id;
         public String getName() {
              return name;
         public void setName(String name) {
              this.name = name;
    DocWebservice.java
    package com.aeb.webservices;
    import com.aeb.types.TestType;
    public class DocWebservice {
         public TestType getType(TestType type) {
              System.out.println("In Server....");
              System.out.println("Received : " + type.getName());
              return type;
    ServiceGen Ant Task
    <servicegen destear="${dist.dir}/wlws.ear" contexturi="wlws">
         <service javaClassComponents="com.aeb.webservices.DocWebservice"
              generateTypes="True"
              targetNamespace="http://www.aeb.com/wlws"
              serviceName="DocWebservice"
              serviceURI="/DocWebservice"
              style="document">
              <client packageName="com.aeb.ws.doc.client" />
         </service>
    </servicegen>
    WSDL
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions xmlns:tns="http://www.aeb.com/wlws" xmlns:wsr="http://www.openuri.org/2002/10/soap/reliability/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding" xmlns:conv="http://www.openuri.org/2002/04/wsdl/conversation/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.aeb.com/wlws">
    <types xmlns:tns="http://www.aeb.com/wlws"
    xmlns:wsr="http://www.openuri.org/2002/10/soap/reliability/"
    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding"
    xmlns:conv="http://www.openuri.org/2002/04/wsdl/conversation/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:s="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.xmlsoap.org/wsdl/">
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:stns="http://www.aeb.com/wlws"
    xmlns:tp="java:com.aeb.types"
    elementFormDefault="qualified"
    attributeFormDefault="qualified"
    targetNamespace="http://www.aeb.com/wlws">
    <xsd:import namespace="java:com.aeb.types">
    </xsd:import>
    <xsd:element xmlns:tp="java:com.aeb.types"
    type="tp:TestType"
    name="getType"
    nillable="true">
    </xsd:element>
    <xsd:element xmlns:tp="java:com.aeb.types"
    type="tp:TestType"
    name="getTypeResponse"
    nillable="true">
    </xsd:element>
    </xsd:schema>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:stns="java:com.aeb.types"
    elementFormDefault="qualified"
    attributeFormDefault="qualified"
    targetNamespace="java:com.aeb.types">
    <xsd:complexType name="TestType">
    <xsd:sequence>
    <xsd:element type="xsd:string"
    name="id"
    minOccurs="1"
    maxOccurs="1"
    nillable="true">
    </xsd:element>
    <xsd:element type="xsd:string"
    name="name"
    minOccurs="1"
    maxOccurs="1"
    nillable="true">
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>
    </types>
    <message name="getType">
    <part xmlns:partns="http://www.aeb.com/wlws"
    name="testType"
    element="partns:getType">
    </part>
    </message>
    <message name="getTypeResponse">
    <part xmlns:partns="http://www.aeb.com/wlws"
    name="result"
    element="partns:getTypeResponse">
    </part>
    </message>
    <portType name="DocWebservicePort">
    <operation name="getType">
    <input message="tns:getType">
    </input>
    <output message="tns:getTypeResponse">
    </output>
    </operation>
    </portType>
    <binding type="tns:DocWebservicePort"
    name="DocWebservicePort">
    <soap:binding style="document"
    transport="http://schemas.xmlsoap.org/soap/http">
    </soap:binding>
    <operation name="getType">
    <soap:operation style="document"
    soapAction="">
    </soap:operation>
    <wsr:reliability persistDuration="60000">
    </wsr:reliability>
    <input>
    <soap:body namespace="http://www.aeb.com/wlws"
    use="literal">
    </soap:body>
    </input>
    <output>
    <soap:body namespace="http://www.aeb.com/wlws"
    use="literal">
    </soap:body>
    </output>
    </operation>
    </binding>
    <service name="DocWebservice">
    <port name="DocWebservicePort"
    binding="tns:DocWebservicePort">
    <soap:address location="http://localhost:7001/wlws/DocWebservice">
    </soap:address>
    </port>
    </service>
    </definitions>
    Thanks
    Aspert

    Hello,
    I have been trying to make this DII client for doc/literal using non built-in type to work for 2 days now.
    Any help/input will be greatly appreciated. I have added the code and wsdl below.
    BTW this is using the code first approach.
    Works perfectly fine with the clientgen generated stubs. But not with DII.
    With the stubs, following is the SOAP envelope.
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <env:Header/>
    <env:Body>
    <n1:getType xmlns:n1="http://www.aeb.com/wlws">
         <n2:id xmlns:n2="java:com.aeb.types">XYS</n2:id>
         <n3:name xmlns:n3="java:com.aeb.types">Name</n3:name>
    </n1:getType>
    </env:Body>
    </env:Envelope>
    With DII (using the serializer/deserializer generated by clientgen),
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <env:Header/>
    <env:Body>
    <n1:TestType xmlns:n1="java:com.aeb.types">
         <n1:id>ABC</n1:id>
         <n1:name>Some Name</n1:name>
    </n1:TestType>
    </env:Body></env:Envelope>
    Exception
    javax.xml.rpc.soap.SOAPFaultException: Unable to find a matching Operation for this remote invocation
    <n1:TestType xmlns:n1="java:com.aeb.types">
    <n1:id>ABC</n1:id>
    <n1:name>Some Name</n1:name>
    </n1:TestType>.
         Please check your operation name.
         at weblogic.webservice.core.ClientDispatcher.receive(ClientDispatcher.java:313)
         at weblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:144)
         at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:457)
         at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:443)
         at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:558)
         at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:411)
         at com.amgen.webservice.clients.DocClient.callService(DocClient.java:83)
         at com.amgen.webservice.clients.DocClient.main(DocClient.java:35)
    Client
    System.setProperty("javax.xml.rpc.ServiceFactory","weblogic.webservice.core.rpc.ServiceFactoryImpl");
    System.setProperty("weblogic.webservice.verbose", "true");
    String targetNamespace = "http://www.aeb.com/wlws";
    ServiceFactory factory = ServiceFactory.newInstance();
    QName serviceName = new QName(targetNamespace, "DocWebservice");
    QName portName = new QName(targetNamespace, "DocWebservicePort");
    QName operationName = new QName(targetNamespace, "getType");
    Service service = factory.createService(serviceName);
    TypeMappingRegistry registry = service.getTypeMappingRegistry();
    TypeMapping mapping = registry.getTypeMapping(SOAPConstants.URI_NS_SOAP_ENCODING);
    mapping.register(TestType.class, new QName("java:com.aeb.types","TestType"), new TestTypeCodec(), new TestTypeCodec());
    Call call = service.createCall();
    call.setOperationName(operationName);
    call.setPortTypeName(portName);
    call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean(true));
    call.setProperty(Call.SOAPACTION_URI_PROPERTY, "");
    call.setProperty(Call.OPERATION_STYLE_PROPERTY, "document");
    call.addParameter("testType", new QName("java:com.aeb.types","TestType"), TestType.class, ParameterMode.IN);
    call.setReturnType(new QName("java:com.aeb.types", "TestType"),TestType.class);
    call.setTargetEndpointAddress("http://localhost:7001/wlws/DocWebservice");
    TestType type = new TestType();
    type.setId("ABC");
    type.setName("Some Name");
    TestType res = (TestType) call.invoke(new Object[] { type });
    System.out.println(res.getName());
    TestType.java
    package com.aeb.types;
    import java.io.Serializable;
    public class TestType implements Serializable {
         private String id;
         private String name;
         public String getId() {
              return id;
         public void setId(String id) {
              this.id = id;
         public String getName() {
              return name;
         public void setName(String name) {
              this.name = name;
    DocWebservice.java
    package com.aeb.webservices;
    import com.aeb.types.TestType;
    public class DocWebservice {
         public TestType getType(TestType type) {
              System.out.println("In Server....");
              System.out.println("Received : " + type.getName());
              return type;
    ServiceGen Ant Task
    <servicegen destear="${dist.dir}/wlws.ear" contexturi="wlws">
         <service javaClassComponents="com.aeb.webservices.DocWebservice"
              generateTypes="True"
              targetNamespace="http://www.aeb.com/wlws"
              serviceName="DocWebservice"
              serviceURI="/DocWebservice"
              style="document">
              <client packageName="com.aeb.ws.doc.client" />
         </service>
    </servicegen>
    WSDL
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions xmlns:tns="http://www.aeb.com/wlws" xmlns:wsr="http://www.openuri.org/2002/10/soap/reliability/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding" xmlns:conv="http://www.openuri.org/2002/04/wsdl/conversation/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.aeb.com/wlws">
    <types xmlns:tns="http://www.aeb.com/wlws"
    xmlns:wsr="http://www.openuri.org/2002/10/soap/reliability/"
    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding"
    xmlns:conv="http://www.openuri.org/2002/04/wsdl/conversation/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:s="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.xmlsoap.org/wsdl/">
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:stns="http://www.aeb.com/wlws"
    xmlns:tp="java:com.aeb.types"
    elementFormDefault="qualified"
    attributeFormDefault="qualified"
    targetNamespace="http://www.aeb.com/wlws">
    <xsd:import namespace="java:com.aeb.types">
    </xsd:import>
    <xsd:element xmlns:tp="java:com.aeb.types"
    type="tp:TestType"
    name="getType"
    nillable="true">
    </xsd:element>
    <xsd:element xmlns:tp="java:com.aeb.types"
    type="tp:TestType"
    name="getTypeResponse"
    nillable="true">
    </xsd:element>
    </xsd:schema>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:stns="java:com.aeb.types"
    elementFormDefault="qualified"
    attributeFormDefault="qualified"
    targetNamespace="java:com.aeb.types">
    <xsd:complexType name="TestType">
    <xsd:sequence>
    <xsd:element type="xsd:string"
    name="id"
    minOccurs="1"
    maxOccurs="1"
    nillable="true">
    </xsd:element>
    <xsd:element type="xsd:string"
    name="name"
    minOccurs="1"
    maxOccurs="1"
    nillable="true">
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>
    </types>
    <message name="getType">
    <part xmlns:partns="http://www.aeb.com/wlws"
    name="testType"
    element="partns:getType">
    </part>
    </message>
    <message name="getTypeResponse">
    <part xmlns:partns="http://www.aeb.com/wlws"
    name="result"
    element="partns:getTypeResponse">
    </part>
    </message>
    <portType name="DocWebservicePort">
    <operation name="getType">
    <input message="tns:getType">
    </input>
    <output message="tns:getTypeResponse">
    </output>
    </operation>
    </portType>
    <binding type="tns:DocWebservicePort"
    name="DocWebservicePort">
    <soap:binding style="document"
    transport="http://schemas.xmlsoap.org/soap/http">
    </soap:binding>
    <operation name="getType">
    <soap:operation style="document"
    soapAction="">
    </soap:operation>
    <wsr:reliability persistDuration="60000">
    </wsr:reliability>
    <input>
    <soap:body namespace="http://www.aeb.com/wlws"
    use="literal">
    </soap:body>
    </input>
    <output>
    <soap:body namespace="http://www.aeb.com/wlws"
    use="literal">
    </soap:body>
    </output>
    </operation>
    </binding>
    <service name="DocWebservice">
    <port name="DocWebservicePort"
    binding="tns:DocWebservicePort">
    <soap:address location="http://localhost:7001/wlws/DocWebservice">
    </soap:address>
    </port>
    </service>
    </definitions>
    Thanks
    Aspert

  • Java.lang.NullPointerException in 8.1 with soap doc literal binding

    hi,
    scenario:
    1) web service with soap doc literal binding on external server. web service
    is expecting a complex input argument
    2) generate web service control in weblogic 8.1 (sp1) workshop
    3) wrote jws file to use the web service control
    4) run test and hit the following call stack
    NOTE: this is only encountered when the web service is expecting a complex input
    argument. if the web service is expecting a simple input argument, it works fine
    java.lang.NullPointerException at com.bea.xml.marshal.AtomicValueMPlan.marshal(AtomicValueMPlan.java:90)
    at com.bea.xml.marshal.BaseMPlan.marshal(BaseMPlan.java:337) at com.bea.xml.marshal.MarshalContext.writeElementObjectOrHref(MarshalContext.java:426)
    at com.bea.xml.marshal.BaseMPlan.writeValueUsingStrategy(BaseMPlan.java:307) at
    com.bea.xml.marshal.BaseMPlan.marshal(BaseMPlan.java:349) at com.bea.xml.marshal.MarshalContext.writeElementObjectOrHref(MarshalContext.java:426)
    at com.bea.xml.marshal.BaseMPlan.writeValueUsingStrategy(BaseMPlan.java:307) at
    com.bea.xml.marshal.BaseMPlan.marshal(BaseMPlan.java:349) at com.bea.xml.marshal.MethodMPlan.marshal(MethodMPlan.java:260)
    at com.bea.wlw.runtime.core.dispatcher.DispMessage.marshalXml(DispMessage.java:386)
    at com.bea.wlw.runtime.jws.call.SoapCall.<init>(SoapCall.java:150) at com.bea.wlw.runtime.jws.call.SoapHttpCall.<init>(SoapHttpCall.java:61)
    at com.bea.wlw.runtime.core.control.ServiceControlImpl.invoke(ServiceControlImpl.jcs:559)
    at com.bea.wlw.runtime.core.dispatcher.DispMethod.invoke(DispMethod.java:359)
    at com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.java:420) at
    com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.java:393) at com.bea.wlw.runtime.jcs.container.JcsProxy.invoke(JcsProxy.java:387)
    at $Proxy8.DocLitQueryByExample(Unknown Source) at doc_lit_bs.bs_doc_litControlTest.DocLitQueryByExample(bs_doc_litControlTest.jws:31)
    is there a workaround to the problem?

    http://newsgroups.bea.com/cgi-bin/dnewsweb?cmd=article&group=weblogic.developer.interest.webservices&item=4270
    Bolei wrote:
    >
    hi,
    scenario:
    1) web service with soap doc literal binding on external server. web service
    is expecting a complex input argument
    2) generate web service control in weblogic 8.1 (sp1) workshop
    3) wrote jws file to use the web service control
    4) run test and hit the following call stack
    NOTE: this is only encountered when the web service is expecting a complex input
    argument. if the web service is expecting a simple input argument, it works fine
    java.lang.NullPointerException at com.bea.xml.marshal.AtomicValueMPlan.marshal(AtomicValueMPlan.java:90)
    at com.bea.xml.marshal.BaseMPlan.marshal(BaseMPlan.java:337) at com.bea.xml.marshal.MarshalContext.writeElementObjectOrHref(MarshalContext.java:426)
    at com.bea.xml.marshal.BaseMPlan.writeValueUsingStrategy(BaseMPlan.java:307) at
    com.bea.xml.marshal.BaseMPlan.marshal(BaseMPlan.java:349) at com.bea.xml.marshal.MarshalContext.writeElementObjectOrHref(MarshalContext.java:426)
    at com.bea.xml.marshal.BaseMPlan.writeValueUsingStrategy(BaseMPlan.java:307) at
    com.bea.xml.marshal.BaseMPlan.marshal(BaseMPlan.java:349) at com.bea.xml.marshal.MethodMPlan.marshal(MethodMPlan.java:260)
    at com.bea.wlw.runtime.core.dispatcher.DispMessage.marshalXml(DispMessage.java:386)
    at com.bea.wlw.runtime.jws.call.SoapCall.<init>(SoapCall.java:150) at com.bea.wlw.runtime.jws.call.SoapHttpCall.<init>(SoapHttpCall.java:61)
    at com.bea.wlw.runtime.core.control.ServiceControlImpl.invoke(ServiceControlImpl.jcs:559)
    at com.bea.wlw.runtime.core.dispatcher.DispMethod.invoke(DispMethod.java:359)
    at com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.java:420) at
    com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.java:393) at com.bea.wlw.runtime.jcs.container.JcsProxy.invoke(JcsProxy.java:387)
    at $Proxy8.DocLitQueryByExample(Unknown Source) at doc_lit_bs.bs_doc_litControlTest.DocLitQueryByExample(bs_doc_litControlTest.jws:31)
    is there a workaround to the problem?

  • Document Literal / Wrapped

    Hi,
    I am using Oracle BPEL 10.1.2.0.2, and it seems like WSDLs are generated in Document Literal form. I can't seem to find a way to specify Document Literal Wrapped, is this possilbe?
    Thanks,
    Nicholas

    Actually, if we try to create webservice(wsdl) from XI (Integration Directory) by default it creates with document/literal style. My question is, Is there any way to create document/literal wrapped wsdl file(not only document/literal wrapped other styles also).
    If we take ORACLE Apps, they have 4 options (document,rpc style and etc) while creating the wsdl file.
    XI doesn't have this options, but can we do any workaround to do this?
    Regards
    Sara

  • Wscompile question with doc/literal ws

    This is probably a very basic question, but I'm using wscompile to generate some client stub code for a doc/literal web service. Everything works okay, i can execute the service with no problem.
    My question is why does the tool generate the interface with individual parameters instead of an object. The WSDL defines the message as a complextype with multiple elements, and the wscompile tool does generate a java class based on the complextype but then the interface doesn't use it. So for a large document I end up with a lot of parameters to pass.
    Here is an example of what I'm referring to:
    In the WSDL the message is represented like this:
    <xsd:element name="requestservice">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element ref="ti:firstname"/>
                    <xsd:element ref="ti:lastname"/>
                    <xsd:element ref="ti:address"/>
                    <xsd:element ref="ti:city"/>
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>So i would expect the interface to take an object called Requestservice instead of this:
    public java.lang.String requestservice(java.lang.String firstname, java.lang.String lastname, java.lang.String address, java.lang.String city) I'm probably not doing something right but if anyone could point me in the right direction, it would be great. Doing this in .Net(I know bad, but I have to) I get an object reference instead of multiple parameters to pass. Which with a large document is a whole lot easier to deal with.
    thanks for any suggestions.
    markg

    For anyone interested - I have found the following gem hidden deep inside OTN:
    http://www.oracle.com/technology/sample_code/tech/java/codesnippet/webservices/docservice/index.html
    Its a simple Doc literal WS with client.jsp that can be deployed on 9.0.3/9.0.4. Just got it working on my standalone 904 - beautiful stuff!

  • How to create a Doc/Literal WebService that supports SOAP attachment?

    Hi,
    I need a sample that works with OC4J to provide a doc/literal WS which supports attachment for input/output.
    How to create that with JDeveloper?
    Thanks!

    Hi there!
    Thanks for the info. Actually I am using v10.1.3.2 (OracleAS and Jdeveloper) and tried to follow the "Working With Attachments'. However, the steps described there don't use JDeveloper.
    I tried to feed the Example 2-2 WSDL into JDeveloper's Create J2EE 1.4 Java Web Service from WSDL wizard but it doesn't work due to this line:
    <xsd:import namespace="http://ws-i.org/profiles/basic/1.1/xsd"
    schemaLocation="http://ws-i.org/profiles/basic/1.1/xsd"/>
    It should be this:
    <xsd:import namespace="http://ws-i.org/profiles/basic/1.1/xsd" schemaLocation="WS-ISwA.xsd"/>     
    WS-ISwA.xsd:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
    targetNamespace="http://ws-i.org/profiles/basic/1.1/xsd"
    xmlns:tns="http://ws-i.org/profiles/basic/1.1/xsd">
         <xsd:simpleType name="swaRef">
              <xsd:restriction base="xsd:anyURI" />
         </xsd:simpleType>
    </xsd:schema>
    But then not sure what to do with step 3 & 4 in the wizard. So kind of confusing....
    So far, I couldn't find a complete doc/literal WS/attachment sample (for OracleAS). Wonder if you know of any out there.
    Thanks,
    Daniel

  • Does PI supports WSDL document literal wrapped?

    Hi experts,
    One question, please! Does PI supports WSDL document literal wrapped? If not which workaround we have?
    Thanks in advance,
    Jorge.

    Thanks but didn't help too much.
    In fact, the first thread was posted by myself and it's only document literal related. The second is regarding the WSDL formats supported and also with the element <wsdl:part name=" "> that is not supported.
    I know that PI supports WSDL document literal, but anyone has implemented document literal wrapped, to invoke different functions that use the same parameters.
    Regards,
    Jorge.

  • Wsdltoservice  and doc literal

    Hi,
    I have two questions.
    a) I use wsdltoservice to generate java interface from wsdl file. My wsdl file has imports a schema. When i ran wsdltoservice, both schema and wsdl are in the same directory and the import looked like
    <xsd:import namespace="somenamespace" schemaLocation="schema.xsd">
    Generated webservice.xml has only wsdl embedded. What will happen to the schema. Any client accessing the wsdl will try to look at the wsdl at <http://localhost:7001/.../schema.xsd".
    My question is how to package the imported schema along with the wsdl
    b) Autotyping doesn't work for complex wsdl. I ran wsdl2service to get the operation in terms of SOAPElement.
    Eg: My operation looks like
    public javax.xml.soap.SOAPElement GetResourcesDcoument(javax.xml.soap.SOAPElement document)
    But when i send the xml fragment to that endpoint i get this following error
    javax.xml.soap.SOAPException: failed to deserialize
    xml:weblogic.xml.schema.binding.DeserializationException: mapping lookup failure for xml type
    Where is the mapping involved here? I don't think weblogic should have problem deserialzing xml to SOAPElement

    For anyone interested - I have found the following gem hidden deep inside OTN:
    http://www.oracle.com/technology/sample_code/tech/java/codesnippet/webservices/docservice/index.html
    Its a simple Doc literal WS with client.jsp that can be deployed on 9.0.3/9.0.4. Just got it working on my standalone 904 - beautiful stuff!

  • Develop Doc/Literal WS with a bottom up approach

    Hi all,
    I am trying to work with the jax rpc implementation of OC4J 10.1.2.
    I saw on OTN how build doc/literal web services with a top down approach but not with a bottom up approach. I can t see any tool like java2wsdl and wsdl2java of axis in the official documentation.
    I know that the next release 10.1.3 will provide these fonctionalities by ANT scripts but no for current production's release.
    Is there, somewhere ant scripts or librairies which could help me ?
    Thanks in advance.
    Alexandre
    My environment
    OC4J 10.1.2
    JDK 1.4.2
    Maven, Ant, Eclipse

    In 10.1.2, the was to build Web services using the bottom-up development pattern is to use the WebServicesAssemble.jar file. If you specify the document style for the message format, in your configuration file, you will be able to assemble such application.
    As to the ant integration, it will be limited to using the java task:
    <target name="createpackage">
    <java jar="${ORACLE_HOME}/webservices/lib/WebServicesAssembler.jar" fork="yes"
         failonerror="true">
    <arg value="-config"/>
    <arg value="./config.xml"/>
    </java>
    </target>
    Hope this helps,
    Eric

  • Doc lit wrapped

    Hi,
    i've created a doc lit wrapped web service and i use JAXB.
    But JAXB creates java classes for the wrapper classes, which is not wanted (Axis 1 for example doesn't create the wrapper classes if the wsdl is wrapped compatible).
    How can i avoid creating the wrapper classes?
    Cheers,
    Ingo

    Hi Martijn
    If you do generate web service from the wsdl on a 9.2 project, it always uses jax-rpc types and there's no xmlbeans involved.
    If the wsdl is in the schemas folder and the xmlbeans builder is on, then you also have xmlbeans types created by the builder they aren't being used by the web service. You will still have problems, because some of the xmlbeans types may conflict with the jax-rpc types.
    so when we generate webservice from a wsdl it will never use xmlbeans type, even if the xml builder is on, because WLS doesn't support start from wsdl with xmlbeans types.
    Can you please attach the wsdl and the steps so I can replicate and see the issue?
    Thanks
    Vimala

  • Doc/literal attachments

    Dear all,
    I'm trying to write a Web Service that returns an XML-document from a server.
    I tried three kinds of implementations using javax.xml.transform.Source and javax.activation.DataHandler as follows:
    // ex 1
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    import javax.xml.transform.Source;
    public interface XML extends Remote {
         public Source Xml() throws RemoteException;
    // ex2
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    import javax.activation.DataHandler;
    public interface XML extends Remote {
         public DataHandler Xml() throws RemoteException;
    // ex3
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    import javax.activation.DataHandler;
    public interface XML extends Remote {
    // I return a JavaBean with get/set -Methods for the DataHandler
         public ObjWithDataHandlerGetSetMethods Xml() throws RemoteException;
    Building the Web Service with ant (in wscompile)... -f:wsi -f:documentliteral ... returns the following message:
    ex1:
    [exec] error: Attachment types are not supported in literal mode - Type:
    javax.xml.transform.Source"
    ex2 + ex3:
    [exec] error: Attachment types are not supported in literal mode - Type:
    javax.activation.DataHandler"
    It is important to emphasize that I only encounter these problems when working in doc/literal mode. Please don't post any rpc/endoding answers. I want to write in doc/literal in order to follow the WS-I Basic Profile.
    My question is: Is it at all possible to send attachments in literal mode? If yes, how?
    Thank YOU!

    If you look at the release notes: http://java.sun.com/webservices/docs/1.3/jaxrpc/ReleaseNotes.html
    The "Current Limitations" section states:
    "Collection classes and attachments are not supported in document/literal or rpc/literal."

  • Doc Literal vs. RPC

    I'm confused about the best practice for sending attached XML messages. I had always felt that RPC was fine for this and yet I was recently told that Doc Literal is the preferred method that both IBM and Microsoft recommend for sending XML attachments.
    To compound the problem it appears that SAAJ allows my RPC model to handle this task quite well. Is this all a canard or is it marketing differences between different companies ?
    Inquiring if confused minds want to know.

    The major problem in RPC is different company had different serilization method, for exampe, some company may make use of MIME , and the other is DIME. document based avoid this sort of confusion. but RPC is more easily to use.

Maybe you are looking for