WSDL & local qualified accessors (complex type - child elements)

Why does the WLS8.1 generated WSDL file specify
elementFormDefault="qualified" in the schema for complex types.
The resulting runtime SOAP bodies that are sent have unqualified child
elements and tools like JAX-RPC, determine from the WSDL schema that these
child elements SHOULD be qualified and fail to parse the body. I understand
that the spec states that they should not be qualified but then why does the
schema not specify
elementFormDefault="unqualified"?
I have to manually edit the WSDL (to say "unqualified") to generate a client
using JAX-RPC.
Is there some way I can tell <wsdlgen> task to do this?
Thanks,
M
Here's the excerpt from my WLS 8.1 generated WSDL file:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tp="java:com.xxx.framework.persist"
xmlns:stns="java:com.xxx.businessservices.indexservice.valueobjects"
elementFormDefault="qualified"
attributeFormDefault="qualified"
targetNamespace="java:com.xxx.businessservices.indexservice.valueobjects">
<xsd:import namespace="java:com.xxx.framework.persist" />
<xsd:import namespace="java:language_builtins.util" />
<xsd:complexType name="IndexVO">
<xsd:complexContent>
<xsd:extension xmlns:tp="java:com.xxx.framework.persist"
base="tp:FW_PersistentObject">
<xsd:sequence>
<xsd:element type="xsd:string" name="code" minOccurs="1" nillable="true"
maxOccurs="1" />
<xsd:element type="xsd:string" name="description" minOccurs="1"
nillable="true" maxOccurs="1" />
<xsd:element type="xsd:long" name="indexID" minOccurs="1" maxOccurs="1"
/>
<xsd:element type="stns:IndexProviderVO" name="indexProviderVO"
minOccurs="1" nillable="true" maxOccurs="1" />
<xsd:element type="stns:IndexSourceVO" name="indexSourceVO" minOccurs="1"
nillable="true" maxOccurs="1" />
<xsd:element type="xsd:string" name="name" minOccurs="1" nillable="true"
maxOccurs="1" />
<xsd:element type="xsd:dateTime" name="nextUpdateDate" minOccurs="1"
nillable="true" maxOccurs="1" />
<xsd:element type="xsd:long" name="providerID" minOccurs="1"
maxOccurs="1" />
<xsd:element type="xsd:long" name="scheduleID" minOccurs="1"
maxOccurs="1" />
<xsd:element type="stns:UpdateScheduleVO" name="scheduleVO" minOccurs="1"
nillable="true" maxOccurs="1" />
<xsd:element type="xsd:long" name="sourceID" minOccurs="1" maxOccurs="1"
/>
<xsd:element xmlns:tp="java:language_builtins.util" type="tp:List"
name="updateFrequencies" minOccurs="1" nillable="true" maxOccurs="1" />
<xsd:element xmlns:tp="java:com.xxx.framework.persist"
type="xsd:dateTime" name="updatesDisabledDate" minOccurs="1" nillable="true"
maxOccurs="1" />
<xsd:element xmlns:tp="java:language_builtins.util" type="tp:List"
name="values" minOccurs="1" nillable="true" maxOccurs="1" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
"Scott Ziegler" <[email protected]> wrote in message
news:[email protected]...
On Mon, 21 Jul 2003 09:31:45 -0500, Mark Fine wrote:
I've been debugging an XML-RPC generated client and came across the
following problem:
I have a webserice serialized Object, "IndexVO" that has an attribute
(ie.
element) "code".
The WLS8.1 generated WSDL schema declares that code is in the
"com...valueobjects" namespace by virtue of a default (target)namespace.
At runtime, the SOAP envelope that is created seems to put the
attribute/element "code" in the EMPTY namespace, and not in the
"com...valueobjects" namespace. The XML-RPC generated client code is
looking for "code" in the "com...valueobjects" namespace and skips overit
because it is in the "", blank namespace (according to the XML parser).
I'm not a XML expert but from what I can tell, the SOAP envelope that is
returned does not match the WSDL file with respect to the namespace ofthe
attributes in IndexVO.
Am I reading this wrong?We did this for interoperability reasons. Some other stacks that we were
trying to work with would not work if those elements were qualified. The
problem really stems from SOAP 1.1:http://www.w3.org/TR/SOAP/#_Toc478383520
>
"Accessors whose names are local to their containing types have
unqualified element names; all others have qualified names."
SOAP stacks that are not schema aware basically require this behavior.
You might try using a doc-literal service (which is more faithful to the
schema) if that fits your situation.
--Scott

Currently there is no option to make elementFormDefault
unqualified. I filed an enhancement CR (112776).
Regards,
-manoj
http://manojc.com
"Mark Fine" <[email protected]> wrote in message
news:[email protected]...
Why does the WLS8.1 generated WSDL file specify
elementFormDefault="qualified" in the schema for complex types.
The resulting runtime SOAP bodies that are sent have unqualified child
elements and tools like JAX-RPC, determine from the WSDL schema that these
child elements SHOULD be qualified and fail to parse the body. Iunderstand
that the spec states that they should not be qualified but then why doesthe
schema not specify
elementFormDefault="unqualified"?
I have to manually edit the WSDL (to say "unqualified") to generate aclient
using JAX-RPC.
Is there some way I can tell <wsdlgen> task to do this?
Thanks,
M
Here's the excerpt from my WLS 8.1 generated WSDL file:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tp="java:com.xxx.framework.persist"
xmlns:stns="java:com.xxx.businessservices.indexservice.valueobjects"
elementFormDefault="qualified"
attributeFormDefault="qualified"
targetNamespace="java:com.xxx.businessservices.indexservice.valueobjects">
<xsd:import namespace="java:com.xxx.framework.persist" />
<xsd:import namespace="java:language_builtins.util" />
<xsd:complexType name="IndexVO">
<xsd:complexContent>
<xsd:extension xmlns:tp="java:com.xxx.framework.persist"
base="tp:FW_PersistentObject">
<xsd:sequence>
<xsd:element type="xsd:string" name="code" minOccurs="1"nillable="true"
maxOccurs="1" />
<xsd:element type="xsd:string" name="description" minOccurs="1"
nillable="true" maxOccurs="1" />
<xsd:element type="xsd:long" name="indexID" minOccurs="1" maxOccurs="1"
/>
<xsd:element type="stns:IndexProviderVO" name="indexProviderVO"
minOccurs="1" nillable="true" maxOccurs="1" />
<xsd:element type="stns:IndexSourceVO" name="indexSourceVO"minOccurs="1"
nillable="true" maxOccurs="1" />
<xsd:element type="xsd:string" name="name" minOccurs="1"nillable="true"
maxOccurs="1" />
<xsd:element type="xsd:dateTime" name="nextUpdateDate" minOccurs="1"
nillable="true" maxOccurs="1" />
<xsd:element type="xsd:long" name="providerID" minOccurs="1"
maxOccurs="1" />
<xsd:element type="xsd:long" name="scheduleID" minOccurs="1"
maxOccurs="1" />
<xsd:element type="stns:UpdateScheduleVO" name="scheduleVO"minOccurs="1"
nillable="true" maxOccurs="1" />
<xsd:element type="xsd:long" name="sourceID" minOccurs="1"maxOccurs="1"
/>
<xsd:element xmlns:tp="java:language_builtins.util" type="tp:List"
name="updateFrequencies" minOccurs="1" nillable="true" maxOccurs="1" />
<xsd:element xmlns:tp="java:com.xxx.framework.persist"
type="xsd:dateTime" name="updatesDisabledDate" minOccurs="1"nillable="true"
maxOccurs="1" />
<xsd:element xmlns:tp="java:language_builtins.util" type="tp:List"
name="values" minOccurs="1" nillable="true" maxOccurs="1" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
"Scott Ziegler" <[email protected]> wrote in message
news:[email protected]...
On Mon, 21 Jul 2003 09:31:45 -0500, Mark Fine wrote:
I've been debugging an XML-RPC generated client and came across the
following problem:
I have a webserice serialized Object, "IndexVO" that has an attribute
(ie.
element) "code".
The WLS8.1 generated WSDL schema declares that code is in the
"com...valueobjects" namespace by virtue of a default (target)namespace.
At runtime, the SOAP envelope that is created seems to put the
attribute/element "code" in the EMPTY namespace, and not in the
"com...valueobjects" namespace. The XML-RPC generated client code is
looking for "code" in the "com...valueobjects" namespace and skips
over
it
because it is in the "", blank namespace (according to the XML
parser).
>>>
I'm not a XML expert but from what I can tell, the SOAP envelope thatis
returned does not match the WSDL file with respect to the namespace ofthe
attributes in IndexVO.
Am I reading this wrong?We did this for interoperability reasons. Some other stacks that we
were
trying to work with would not work if those elements were qualified.The
problem really stems from SOAP 1.1:
http://www.w3.org/TR/SOAP/#_Toc478383520
"Accessors whose names are local to their containing types have
unqualified element names; all others have qualified names."
SOAP stacks that are not schema aware basically require this behavior.
You might try using a doc-literal service (which is more faithful to the
schema) if that fits your situation.
--Scott

Similar Messages

  • Error parsing envelope: Header child element must be namespace qualified

    Hey all,
    I'm creating a BPEL process that invokes a web service. The web service has an authenticate method that returns a session ID that I attempt to invoke. However, the process fails when trying to parse the response when invoking that operation. I checked the server logs and it's reporting the following: javax.xml.soap.SOAPException: Error parsing envelope: most likely due to an invalid SOAP message.: Header child element 'ID' must be namespace qualified!
    So I invoked the authenticate operation using SOAP UI, since it doesn't parse the response but merely displays it, and here's what was returned (slightly modified):
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
       <soapenv:Header>
          <ID>xxx</ID>
       </soapenv:Header>
       <soapenv:Body>
          <ns1:SessionID xmlns:ns1="http://some-namespace">
             <ns1:ID>xxx</ns1:ID>
          </ns1:SessionID>
       </soapenv:Body>
    </soapenv:Envelope>
    Indeed the ID tag in the header doesn't have a namespace prefix. Looking at the SOAP 1.1 spec it says, “A header entry is identified by its fully qualified element name, which consists of the namespace URI and the local name. All immediate child elements of the SOAP Header element MUST be namespace-qualified.”
    I was told that the code for the web service is frozen and cannot be changed. Are there any ways around this problem? Is it possible for the BPEL process to not parse the SOAP header?
    Thanks,
    Bill

    All,
    I think I might use a HeaderHandler to either strip the offending element from the header all together or modify it so that it's namespace qualified. The problem is, I can't find much documentation on it. The only thing I can find is this: Manipulating XML Data in BPEL section 3.19. It says to implement the HeaderHandler interface but doesn't give the fully qualified name of the interface. I'm guessing it's referring to com.collaxa.cube.ws.HeaderHandler. The invoke method that is defined in the interface is a little different than the one in the documentation. Mine has a signature of public void invoke(CXPartnerLink partnerLink, String operationName, Map payload, List list, Map map2)...what do these parameters represent and what key/value types do the maps have? It also says to register the handler in the bpel.xml deployment descriptor file but I can't find one - is it auto-generated? If so, where is it. If not, how do I generate it? I appreciate any information.
    Thanks,
    Bill

  • How to generate wsdl for complex type using wscompile?

    Hi
    Since couple of days I am trying to generate the the wsdl for following classes
    abstract class Key implements serializable{
    class sikeKey extends Key{
    int siteKey;
    class AddressKey extends siteKey{
    int addressId;
    class Model{
    AddressKey key = new AddressKey();
    }I am using following ant script for wscompile
          <wscompile
              fork= "true"
              base="${dest.dir}/war/WEB-INF/classes"
              server="true"   
              features="wsi"
              mapping="${dest.dir}/war/WEB-INF/Address_Mapping.xml"
              sourceBase="${war.dir}/WEB-INF/classes"
              optimize="false"
              debug="true"
              keep="false"
              verbose="true"
              xPrintStackTrace="true"
              config="${acws-config-dir}/Address_Config.xml">
              <classpath>
                            <pathelement path="${acws.classpath}"/>
                            <pathelement path="${war.dir}/WEB-INF/classes"/>
                   </classpath>
          </wscompile>
    <taskdef name="wscompile" classname="com.sun.xml.rpc.tools.ant.Wscompile">
        <classpath path="${acws.classpath}"/>
    </taskdef>It generates the wsdl but without all complex type.
    <complexType name="AddressWebServiceModel">
    <sequence>
    <element name="addKey" type="tns:AddressKey" nillable="true"/>
    </sequence>
    </complexType>
    <complexType name="AddressKey">
    <sequence>
    <element name="siteID" type="string" nillable="true"/>
    <element name="addressID" type="int"/>
    </sequence>
    </complexType>Here it should create the right mapping for classes siteKey so that the webservice call can be mapped with the response of this Model.
    Any one know how to configure the above script for proper mapping of complex type?

    Add the concrete subclasses of Key in an <AddtionalType> element in your config.xm. file.

  • Reading complex types of a Web Service  using Axis.

    Hi,
      I am trying to read a WSDL using AXis APIs. Lets say I use this WSDL.
    http://www.dataaccess.com/webservicesserver/conversions.wso?WSDL
      This contains 3 complex types and 7 simple types.
    SymbolTable symbolTable = wsdlParser.getSymbolTable();
    BindingEntry bEntry =  symbolTable.getBindingEntry(binding.getQName());
    Collection c = bEntry.getParameters().values();
        Now when I read through the collection I get only 7 simple types contained in the complex types. Can I read the complex types only when they are registered. I expect this to be available because the parser is expected to read the WSDL. I get only these types.
         Urgent !! So please help !!
          (java.util.HashMap$Values) [
    returnParam = (QName:         string
    name:          null
    isReferenced?  true
    Class:         org.apache.axis.wsdl.symbolTable.BaseType
    Base?:         true
    Undefined?:    false
    isSimpleType?  false
    Node:          null
    Dims:         
    isOnlyLiteralReferenced: false
    RefType:       null
    , NumberToWordsResult, OUT)
    faults = {}
    signature = null
    (inputs, inouts, outputs) = (1, 0, 1)
    list = [(QName:         unsignedLong
    name:          null
    isReferenced?  true
    Class:         org.apache.axis.wsdl.symbolTable.BaseType
    Base?:         true
    Undefined?:    false
    isSimpleType?  false
    Node:          null
    Dims:         
    isOnlyLiteralReferenced: false
    RefType:       null
    , ubiNum, IN)],
    returnParam = (QName:         string
    name:          null
    isReferenced?  true
    Class:         org.apache.axis.wsdl.symbolTable.BaseType
    Base?:         true
    Undefined?:    false
    isSimpleType?  false
    Node:          null
    Dims:         
    isOnlyLiteralReferenced: false
    RefType:       null
    , TitleCaseWordsResult, OUT)
    faults = {}
    signature = null
    (inputs, inouts, outputs) = (2, 0, 1)
    list = [(QName:         string
    name:          null
    isReferenced?  true
    Class:         org.apache.axis.wsdl.symbolTable.BaseType
    Base?:         true
    Undefined?:    false
    isSimpleType?  false
    Node:          null
    Dims:         
    isOnlyLiteralReferenced: false
    RefType:       null
    , sText, IN), (QName:         string
    name:          null
    isReferenced?  true
    Class:         org.apache.axis.wsdl.symbolTable.BaseType
    Base?:         true
    Undefined?:    false
    isSimpleType?  false
    Node:          null
    Dims:         
    isOnlyLiteralReferenced: false
    RefType:       null
    , sToken, IN)],
    returnParam = (QName:         string
    name:          null
    isReferenced?  true
    Class:         org.apache.axis.wsdl.symbolTable.BaseType
    Base?:         true
    Undefined?:    false
    isSimpleType?  false
    Node:          null
    Dims:         
    isOnlyLiteralReferenced: false
    RefType:       null
    , NumberToDollarsResult, OUT)
    faults = {}
    signature = null
    (inputs, inouts, outputs) = (1, 0, 1)
    list = [(QName:         decimal
    name:          null
    isReferenced?  true
    Class:         org.apache.axis.wsdl.symbolTable.BaseType
    Base?:         true
    Undefined?:    false
    isSimpleType?  false
    Node:          null
    Dims:         
    isOnlyLiteralReferenced: false
    RefType:       null
    , dNum, IN)]]

    Hi Shiva
    just check the following link
    http://wiki.apache.org/ws/FrontPage/Axis/StaticDeployment
    thanks & regards
    Shishir Shah

  • WSDL first. Namespace of complx type's child elements.

    Hello!
    I've got strange (for me) behavior of wscompile.
    I started to develop a web service from a WSDL definition (document-literal). I built two services built on the written WSDL: one in Java (was deployed to JBoss) and one in .Net. Also I wrote a Java client that should be talking to either .Java or Net service.
    The Java client communicates with .Net service properly. But doesn&#8217;t work with Java one. It fails to desterilise the structure.
    My schema was defined with elementFormDefault="qualified", attributeFormDefault="unqualified". And there was a type that consists of some child elements. After comparing the SOAP messages from the services I payed attention that the Java service doesn&#8217;t define a namespace for child elements:
    From .Net:
    <?xml version="1.0" encoding="utf-8" ?>
    <soap:Envelope
    xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
    <FindUserResponse xmlns="http://echo.test/types">
    <User name="First" surname="Unknown"/>
    <User name="Second" surname="Unknown"/>
    </FindUserResponse>
    </soap:Body>
    </soap:Envelope>
    From Java:
    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
    <ns1:FindUserResponse xmlns:ns1="http://echo.test/types">
    <User name="Mr.First" surname="Unknown"/>
    <User name="Mr.Second" surname="Unknown"/>
    </ns1:FindUserResponse>
    </soapenv:Body>
    </soapenv:Envelope>
    So I think wscompile generates the server side type serialization wrongly - child elements of complex structure are unqualified. But the client code is generated properly.
    When I defined in WSDL that the child elements of my complex type has an attribute: form="unqualified" and recompiled the services and the client, everything starts working.
    Does somebody have any clue of the reason of such strange behaviour?
    Thanks in advance.

    I have the same problem.Jboss+Wscompile, and I in the Sopa response elements are not qualified. could you fix this issue? I need to use type substitution and I can not ahve unqualified as default.

  • Complex types with single array type element, marshaling exception

    For our JAXRPC web service, we have a complex type, as follows:
    <xs:complexType name = "SomeFault">
    <xs:sequence>
    <xs:element name = "errorMessages" type="some:ErrorMessageWSType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    </xs:complexType>
    <xs:simpleType name = "ErrorMessageWSType">
    <xs:restriction base = "xs:NMTOKEN">
    <xs:enumeration value = "INVALID_1"/>
    <xs:enumeration value = "INVALID_2"/>
    <xs:enumeration value = "INVALID_3"/>
    </xs:restriction>
    </xs:simpleType>
    We are running into Marshaling exceptions on the server side when the response/fault complex type has a single array type field.
    weblogic.wsee.codec.CodecException: Failed to encode
    com.bea.xml.XmlException: failed to find a suitable binding type for use in marshalling object "[Lnamespace.type.ErrorMessageWSType;@693767e9".  using schema type: t=SomeFault@http://namespace/SOME/v1 java type:namespace.type.ErrorMessageWSType[]
    If I change SomeFault, by adding another element, the error goes away.
    <xs:complexType name = "SomeFault">
    <xs:sequence>
    <xs:element name = "errorMessages" type="some:ErrorMessageWSType" maxOccurs="unbounded" />
    <xs:element name = "dummyString" type="xsd:string" minOccurs="0" />
    </xs:sequence>
    </xs:complexType>
    Am I doing something wrong during the wsdlc code generation or is this a known issue?
    <wsdlc srcWsdl="${wsdl.dir}/${wsdl.file.name}"
    destJwsDir="${gen.src.dir}/gen-src-jar"
    destImplDir="${main.src.dir}"
    packageName="${package.prefix}" type="JAXRPC">

    Any luck with this? I am running into the same error. Apparently, this is not an issue with Java binding, but when invoking remote EJBs, we run into this. I am running 10.1.3.1 and the error is:
    <fault>
    <bindingFault xmlns="http://schemas.oracle.com/bpel/extension">
    <part name="summary">
    <summary>
    com.collaxa.cube.ws.wsif.providers.ejb.WSIFOperation_EJB@e26dbf : Could not invoke 'getIdentityInfo'; nested exception is:
         org.collaxa.thirdparty.apache.wsif.WSIFException: Class 'ca.bc.gov.pssg.c3.webservices.identitymanagement.Identity' is not compatible; nested exception is:
         oracle.xml.parser.v2.XMLDOMException: cannot add a node belonging to a different document
    </summary>
    </part>
    <part name="detail">
    <detail>
    org.collaxa.thirdparty.apache.wsif.WSIFException: Class 'ca.bc.gov.pssg.c3.webservices.identitymanagement.Identity' is not compatible; nested exception is:
         oracle.xml.parser.v2.XMLDOMException: cannot add a node belonging to a different document
    </detail>
    </part>
    </bindingFault>
    </fault

  • Mapping descrete values to childs of a complex type array

    Hi all,
    I have the following flat XML file with descrete values as source:
    <MaterialRequest_MT>
      <number><b>number1</b></number>
      <shortdesc><b>shortdesc1</b></shortdesc>
      <projectname><b>projectname1</b></projectname>
    </MaterialRequest_MT>
    My problem is how to map this file to the following destination file where the single values of the source file are values of a child element in a list of complex elements:
    <ns0:query xmlns:ns0="http://QueryService">
            <ns0:attributes>
              <ns0:item>
                <ns0:key>
                  <ns0:system>MP</ns0:system>
                  <ns0:name>PartNumber</ns0:name>
                </ns0:key>
                <ns0:value><b>number1</b></ns0:value>
              </ns0:item>
              <ns0:item>
                <ns0:key>
                  <ns0:system>MP</ns0:system>
                  <ns0:name>Description</ns0:name>
                </ns0:key>
                <ns0:value><b>shortdesc1</b></ns0:value>
              </ns0:item>
              <ns0:item>
                <ns0:key>
                  <ns0:system>MP</ns0:system>
                  <ns0:name>Project</ns0:name>
                </ns0:key>
                <ns0:value><b>projectname1</b></ns0:value>
              </ns0:item>
            </ns0:attributes>
    </ns0:query>
    As you see I don't have a source array over which to iterate. This makes it impossible to me to map the source values to the destination items.
    Any help is very appreciated!
    Thanks!
    Denis

    Hi
    <b>Mapping for item node:</b>
        Create a user defined function with 3 input parameters for number,shortdesc,projectname. In the user defined function check whether each input value exists or not.if the input value exists add the code 'result.addValue("")'.if the 3 input values exist then 3 item nodes will be created.
    <b>Mapping for elements</b>
             Create another user defined function with 3 parameter.take the 3 input values same as the above function. Check whether parameter a value exists in the element and write  <b>result.addValue(a[0]);</b>Do similarly for b and c parameters. After defining this function add standard node function 'splitbyvalue' and assign to the target.
       USedefined function---->splitbyvalue--
    >value.
    I guess this solution is a bit complex.....hope it works
    regards
    Suneel
    Message was edited by: Suneel
    Message was edited by: Suneel

  • Header child element 'WSCorIDSOAPHeader' must be namespace qualified!

    I have two machines. The first machine have an OSB managed server and admin server. The second machine have a SOA managed server, admin server and enterprise manager.
    A service call in OSB is redirect do SOA Server (BPEL process).
    After the route the follow message error show in SOA Server log.
    INFO: FabricProviderServlet.stateChanged SOA Platform is running and accepting requests
    javax.xml.soap.SOAPException: Error parsing envelope: most likely due to an invalid SOAP message.: Header child element 'WSCorIDSOAPHeader' must be namespace qualified!
         at oracle.j2ee.ws.saaj.soap.AbstractSOAPImplementation.createEnvelope(AbstractSOAPImplementation.java:137)
         at oracle.j2ee.ws.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:95)
         at oracle.j2ee.ws.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:64)
         at oracle.j2ee.ws.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:1572)
         at oracle.j2ee.ws.common.soap.SoapUtils.getSOAPBodyFirstChildQName(SoapUtils.java:249)
         at oracle.j2ee.ws.server.mgmt.runtime.model.WebServiceOperationModelHelper.getOperationModelFromInputMessage(WebServiceOperationModelHelper.java:139)
         at oracle.j2ee.ws.server.provider.ProviderPort.getOperationModelFromInputMessage(ProviderPort.java:986)
         at oracle.j2ee.ws.server.mgmt.runtime.SuperServerInterceptorPipeline.handleRequest(SuperServerInterceptorPipeline.java:132)
         at oracle.j2ee.ws.server.provider.management.AbstractProviderInterceptorPipeline.executeRequestInterceptorChain(AbstractProviderInterceptorPipeline.java:563)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.executeInterceptorRequestChain(ProviderProcessor.java:921)
         at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:231)
         at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:193)
         at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:459)
         at oracle.integration.platform.blocks.soap.FabricProviderServlet.doPost(FabricProviderServlet.java:507)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:821)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    Caused By: javax.xml.soap.SOAPException: Header child element 'WSCorIDSOAPHeader' must be namespace qualified!
         at oracle.j2ee.ws.saaj.soap.HeaderImpl.createChildElement(HeaderImpl.java:213)
         at oracle.j2ee.ws.saaj.soap.ElementImpl.createAndAppendChildElement(ElementImpl.java:827)
         at oracle.j2ee.ws.saaj.soap.StaxHandler.startElement(StaxHandler.java:222)
         at oracle.j2ee.ws.saaj.soap.StaxHandler.staxParse(StaxHandler.java:82)
         at oracle.j2ee.ws.saaj.soap.StaxHandler.staxParse(StaxHandler.java:70)
         at oracle.j2ee.ws.saaj.soap.AbstractSOAPImplementation.getStaXParsedEnvelope(AbstractSOAPImplementation.java:204)
         at oracle.j2ee.ws.saaj.soap.AbstractSOAPImplementation.createEnvelope(AbstractSOAPImplementation.java:58)
         at oracle.j2ee.ws.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:95)
         at oracle.j2ee.ws.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:64)
         at oracle.j2ee.ws.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:1572)
         at oracle.j2ee.ws.common.soap.SoapUtils.getSOAPBodyFirstChildQName(SoapUtils.java:249)
         at oracle.j2ee.ws.server.mgmt.runtime.model.WebServiceOperationModelHelper.getOperationModelFromInputMessage(WebServiceOperationModelHelper.java:139)
         at oracle.j2ee.ws.server.provider.ProviderPort.getOperationModelFromInputMessage(ProviderPort.java:986)
         at oracle.j2ee.ws.server.mgmt.runtime.SuperServerInterceptorPipeline.handleRequest(SuperServerInterceptorPipeline.java:132)
         at oracle.j2ee.ws.server.provider.management.AbstractProviderInterceptorPipeline.executeRequestInterceptorChain(AbstractProviderInterceptorPipeline.java:563)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.executeInterceptorRequestChain(ProviderProcessor.java:921)
         at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:231)
         at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:193)
         at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:459)
         at oracle.integration.platform.blocks.soap.FabricProviderServlet.doPost(FabricProviderServlet.java:507)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:821)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    >
    What is WSCorIDSOAPHeader ???

    Remove Introscope agend configuration temporarily from yours managed servers and try call the service.
    This is the cause of your problem.
    Contact your Introscope Administration and task about the problem of Introscope + OSB + BPEL (SOA Server).
    Workaround:
    Remove Introscope agend configuration temporarily from yours managed servers and try call the service.

  • Wsdl nested complex type

    I'm trying to create Web service that return a nested complex type.
    The exposed method return a Vector. Elements of vector are beans. A single bean has more attributes, one of them is a hashtable.
    Here my code:
    package pk;
    import java.util.Hashtable;
    public class myBean {
    private String the_string;
    private Hashtable hs;
    public myBean(){
    hs= new Hashtable();
    public void setThe_string(String p_){
    the_string= p_;
    public String getThe_string(){
    return opec;
    public void setHs(Hashtable _hs){
    hs= _hs;
    public Hashtable getHs(){
    return hs;
    The exposed method is :
    public Vector getInfo( Vector myBeanVector, String[] arrayValue)
    The input and output Vectot are myBean's type
    I get alqways this error with oc4j (Jdev 9.0.3):
    No Deserializer found to deserialize pk.myBean
    Any help would be very appreciated.
    thanks in advanced
    massimo

    Hi,
    I'm having a similar problem when following your suggestion. The exact stacktrace is:
    java.lang.ClassNotFoundException:
    org.apache.soap.encoding.soapenc.BeanSerializer
    at oracle.j2ee.ws.GeneratedClassLoader.findClass(GeneratedClassLoader.ja
    va:48)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
    at oracle.j2ee.ws.BaseWebService.initQnameMap(BaseWebService.java:602)
    at oracle.j2ee.ws.RpcWebService.init(RpcWebService.java:453)
    at oracle.j2ee.ws.SessionBeanRpcWebService.init(SessionBeanRpcWebService
    .java:54)
    Has anyone come across a similar problem before? What was the workaround? I will appreciate any help!
    Thanks
    Riz

  • JAXB - Elements declared as Complex Types becomming static inline classes

    When a complex type is defined in the XSD as a complex type, compiling the scheme creates it as static class within the owning class.
    Is there anyway to change the behavior so that a regular class is created? Or do I need to change the schema to declare the type 'at the top level'?

    When a complex type is defined in the XSD as a complex type, compiling the scheme creates it as static class within the owning class.
    Is there anyway to change the behavior so that a regular class is created? Or do I need to change the schema to declare the type 'at the top level'?

  • Recommended steps to generate a web service using nested complex types

    Hello,
    I need to generate a web service that uses nested complex types with built in types on the bottom layer. I hve posted an attempt at a WSDL. Please give advice on if I am doing it correctly.
    I have the suspicion that I should nest the complex types into the final complex type VendorStockingInterface. Please confirm.
    <?xml version="1.0" encoding="utf-8"?>
    <definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:conv="http://www.openuri.org/2002/04/soap/conversation/"
    xmlns:cw="http://www.openuri.org/2002/04/wsdl/conversation/"
    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
    xmlns:jms="http://www.openuri.org/2002/04/wsdl/jms/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:s="http://www.w3.org/2001/XMLSchema"
    xmlns:s0="http://www.openuri.org/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    targetNamespace="http://www.openuri.org/">
    <types>
    <s:schema targetNamespace="http://www.openuri.org/"
    xmlns:s="http://www.w3.org/2001/XMLSchema">
    <s:element name="RegisterServiceRequest">
    <s:complexType>
    <s:sequence>
    <s:element name="DeviceCapabilities">
    <s:complexType>
    <s:sequence>
    <s:element name="OSName" type="s:string" nillable="true"/>
         <s:element name="OSVersion" type="s:string" nillable="true"/>
         <s:element name="BRType" type="s:string" nillable="true"/>
         <s:element name="DisplayColors" type="s:string" nillable="true"/>
         <s:element name="DisplayTechnology" type="s:string" nillable="true"/>
         <s:element name="NetworkAccess" type="s:boolean" nillable="true"/>
         <s:element name="DownloadMethod" type="s:string" nillable="true"/>
         <s:element name="DownloadVersion" type="s:string" nillable="true"/>
         <s:element name="Protocols" type="s:string" nillable="true"/>
         </s:sequence>
    </s:complexType>
    </s:element>
         <s:element name="LicenseType">
    <s:complexType>
    <s:sequence>
         <s:element name="Licences" type="s:string" nillable="false"/>
    </s:sequence>
    </s:complexType>
    </s:element>
         <s:element name="PriceValue">
    <s:complexType>
    <s:sequence>
         <s:element name="Value" type="s:float" nillable="false"/>
         <s:element name="CurrencyType" type="s:string" nillable="false"/>
    </s:sequence>
    </s:complexType>
    </s:element>
         <s:element name="RevenueModelType">
    <s:complexType>
    <s:sequence>
         <s:element name="VSRP" type="RegisterServiceRequest:PriceValue" nillable="true"/>
         <s:element name="WholesalePrice" type="RegisterServiceRequest:PriceValue" nillable="true"/>
         <s:element name="VendorSplitPercentage" type="s:float" nillable="true"/>
         <s:element name="VendorPurchasePrice" type="RegisterServiceRequest:PriceValue" nillable="true"/>
         <s:element name="License" type="RegisterServiceRequest:LicenseType" nillable="false"/>
    </s:sequence>
    </s:complexType>
    </s:element>
         <s:element name="VendorItemIdentifierType">
    <s:complexType>
    <s:sequence>
         <s:element name="VendorProductDisplay" type="s:string" nillable="false"/>
         <s:element name="VendorProductVersion" type="s:string" nillable="false"/>
         <s:element name="VendorProductCode" type="s:string" nillable="false"/>
    </s:sequence>
    </s:complexType>
    </s:element>     
         <s:element name="VendorBriefType">
    <s:complexType>
    <s:sequence>
         <s:element name="VendorID" type="s:string" nillable="false"/>
    </s:sequence>
    </s:complexType>
    </s:element>     
         <s:element name="VendorItemBriefType">
    <s:complexType>
    <s:sequence>
         <s:element name="VendorProductID" type="RegisterServiceRequest:VendorItemIdentifierType" nillable="false"/>
         <s:element name="VendorID" type="RegisterServiceRequest:VendorBriefType" nillable="false"/>
         <s:element name="VendorDescription" type="s:string" nillable="true"/>
         <s:element name="VendorPricing" type="RegisterServiceRequest:RevenueModelType" nillable="false"/>
         <s:element name="DownloadURL" type="s:string" nillable="true"/>
         <s:element name="ShortCode" type="s:string" nillable="true"/>
         <s:element name="ApplicationCode" type="s:string" nillable="true"/>
         <s:element name="DRMMethod" type="s:string" nillable="true"/>
    </s:sequence>
    </s:complexType>
    </s:element>     
         <s:element name="ContentType">
    <s:complexType>
    <s:sequence>
         <s:element name="Categorization" type="s:string" nillable="false"/>
         <s:element name="MIMEType" type="s:string" nillable="true"/>
    </s:sequence>
    </s:complexType>
    </s:element>     
         <s:element name="VendorStockingInterface">
    <s:complexType>
    <s:sequence>
         <s:element name="VendorItemInfo" type="RegisterServiceRequest:VendorItemBriefType" nillable="false"/>
         <s:element name="ProductType" type="RegisterServiceRequest:ContentType" nillable="false"/>
         <s:element name="DeviceRequirements" type="RegisterServiceRequest:DeviceCapabilitiesType" nillable="true"/>
         <s:element name="VendorPricing" type="RegisterServiceRequest:RevenueModelType" nillable="false"/>
         <s:element name="ProgramMemory" type="s:int" nillable="true"/>
         <s:element name="DataMemory" type="s:int" nillable="true"/>
         <s:element name="Author" type="s:string" nillable="true"/>
         <s:element name="Language" type="s:string" nillable="true"/>
    </s:sequence>
    </s:complexType>
    </s:element>          
    <s:element name="RegisterServiceResponse">
    <s:complexType>
    <s:sequence>
    <s:element name="Message" type="s:string"/>
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:schema>
    </types>
    <message name="RegisterServiceSoapIn">
    <part name="parameters" element="s0:RegisterServiceRequest"/>
    </message>
    <message name="RegisterServiceSoapOut">
    <part name="parameters" element="s0:RegisterServiceResponse"/>
    </message>
    <portType name="RegisterServiceSoap">
    <operation name="RegisterService">
    <input message="s0:RegisterServiceSoapIn"/>
    <output message="s0:RegisterServiceSoapOut"/>
    </operation>
    </portType>
    <binding name="RegisterServiceSoap" type="s0:RegisterServiceSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
    <operation name="RegisterService">
    <soap:operation soapAction="http://www.openuri.org/RegisterService" style="document"/>
    <input>
    <soap:body use="literal"/>
    </input>
    <output>
    <soap:body use="literal"/>
    </output>
    </operation>
    </binding>
    <service name="RegisterService">
    <port name="RegisterServiceSoap" binding="s0:RegisterServiceSoap">
    <soap:address location="http://localhost:7001/RegisterService.jws"/>
    </port>
    </service>
    </definitions>
    I'd like the the consumer of the web service to send it a document with the fields formatted to the VendorInterface complextype which contains the other complextypes. In return the consumer will get another document with some acknowledgement messages.
    To make this happen I'd like to generate the web service, creating the complex type classes and XMLBeans. I'd like advice on the steps to take once I get a good WSDL.
    There is also the option to go from the other direction. Is it better to attempt to create a schema XSD document instead and use that to work towards the web service and WSDL? If so, could someone give an example of how to format an XSD using my example needs.

    I think I have got it all in place, though I have not tested it as of yet. For others who are looking at this, here is my XSD file from which all my complextypes were generated and lastly here is the actual web service file.
    ?xml version="1.0"?>
    <xs:schema targetNamespace="http://openuri.org/RegisterService"
    xmlns:rs="http://openuri.org/RegisterService"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified"
    xmlns:tns="http://temp.openuri.org/VerizonBOBO/RegisterServiceRequestDocument.xsd">
    <xs:element name="RegisterServiceRequest" type="rs:VendorStockingInterface"/>
    <xs:complexType name="DeviceCapabilitiesType">
    <xs:sequence>
    <xs:element name="OSName" type="xs:string" nillable="true"/>
    <xs:element name="OSVersion" type="xs:string" nillable="true"/>
    <xs:element name="BRType" type="xs:string" nillable="true"/>
    <xs:element name="DisplayColors" type="xs:string" nillable="true"/>
    <xs:element name="DisplayTechnology" type="xs:string" nillable="true"/>
    <xs:element name="NetworkAccess" type="xs:boolean" nillable="true"/>
    <xs:element name="DownloadMethod" type="xs:string" nillable="true"/>
    <xs:element name="DownloadVersion" type="xs:string" nillable="true"/>
    <xs:element name="Protocols" type="xs:string" nillable="true"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="LicenseType">
    <xs:sequence>     
    <xs:element name="Licences" type="xs:string" nillable="false"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="PriceValue">
    <xs:sequence>
    <xs:element name="Value" type="xs:float" nillable="false"/>
    <xs:element name="CurrencyType" type="xs:string" nillable="false"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="RevenueModelType">
    <xs:sequence>
    <xs:element name="VSRP" type="rs:PriceValue" nillable="true"/>
    <xs:element name="WholesalePrice" type="rs:PriceValue" nillable="true"/>
    <xs:element name="VendorSplitPercentage" type="xs:float" nillable="true"/>
    <xs:element name="VendorPurchasePrice" type="rs:PriceValue" nillable="true"/>
    <xs:element name="License" type="rs:LicenseType" nillable="false"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="VendorItemIdentifierType">
    <xs:sequence>
    <xs:element name="VendorProductDisplay" type="xs:string" nillable="false"/>
    <xs:element name="VendorProductVersion" type="xs:string" nillable="false"/>
    <xs:element name="VendorProductCode" type="xs:string" nillable="false"/>
         </xs:sequence>
    </xs:complexType>
    <xs:complexType name="VendorBriefType">
    <xs:sequence>
    <xs:element name="VendorID" type="xs:string" nillable="false"/>
         </xs:sequence>
    </xs:complexType>
    <xs:complexType name="VendorItemBriefType">
    <xs:sequence>
    <xs:element name="VendorProductID" type="rs:VendorItemIdentifierType" nillable="false"/>
    <xs:element name="VendorID" type="rs:VendorBriefType" nillable="false"/>
    <xs:element name="VendorDescription" type="xs:string" nillable="true"/>
    <xs:element name="VendorPricing" type="rs:RevenueModelType" nillable="false"/>
    <xs:element name="DownloadURL" type="xs:string" nillable="true"/>
    <xs:element name="ShortCode" type="xs:string" nillable="true"/>
    <xs:element name="ApplicationCode" type="xs:string" nillable="true"/>
    <xs:element name="DRMMethod" type="xs:string" nillable="true"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ContentType">
    <xs:sequence>
    <xs:element name="Categorization" type="xs:string"/>
    <xs:element name="MIMEType" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="VendorStockingInterface">
    <xs:sequence>
    <xs:element name="VendorItemInfo" type="rs:VendorItemBriefType"/>
    <xs:element name="ProductType" type="rs:ContentType"/>
    <xs:element name="DeviceRequirements" type="rs:DeviceCapabilitiesType"/>
    <xs:element name="VendorPricing" type="rs:RevenueModelType"/>
    <xs:element name="ProgramMemory" type="xs:int"/>
    <xs:element name="DataMemory" type="xs:int"/>
    <xs:element name="Author" type="xs:string"/>
    <xs:element name="Language" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="RegisterServiceResponse">
    <xs:sequence>
    <xs:element name="Message" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    The Web Service File:
    import org.openuri.registerService.RegisterServiceResponse;
    import org.openuri.registerService.RegisterServiceRequestDocument;
    import com.verizon.hp.registerservice.*;
    public class RegisterService implements com.bea.jws.WebService
    static final long serialVersionUID = 1L;
    * @common:operation
    * @jws:protocol form-post="false" form-get="false"
    public org.openuri.registerService.RegisterServiceResponse RegisterService(org.openuri.registerService.RegisterServiceRequestDocument RegisterServiceDoc)
    VendorStockingInterface vsInterface = (VendorStockingInterface)RegisterServiceDoc.getRegisterServiceRequest();
    System.out.println(vsInterface.toString());
    com.verizon.hp.registerservice.RegisterServiceResponse serviceResponse = new com.verizon.hp.registerservice.RegisterServiceResponse();
    serviceResponse.setMessage("Register New Service Message has been received successfully");
    org.openuri.registerService.RegisterServiceResponse response = (org.openuri.registerService.RegisterServiceResponse)serviceResponse;
    return response;
    }

  • Unsupported feature: Faults with Complex types

    I am confused about the statement that WebLogic currently does not support Faults
    with Complex types. In a pilot project I am working on we did expose custom complex
    exceptions and it appeared that WebLogic correctly created the WSDL Fault definitions.
    Were we just lucky? Is the recommended approach to only use exceptions that extend
    SOAPFault?
    This may sound like a strange question because it appears WebLogic handled this
    correctly, but the part of the project is to document possible problem areas when
    exposing Web Services. If custom Faults are a problem area I need to addres it.
    We are working with Weblogic 8.1, but are not using Workshop.
    The web service that throws 2 custom exceptions(extend Exception); AvailabilityException
    and AvailabilityQueryException
    AvailabilityQueryException extends AvailabilityException and has some defined
    properties (statusCode and statusText).
    The fault definition in the wsdl is below?
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:com.cardinal.mps.availability.ejb"
    elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:com.cardinal.mps.availability.ejb">
    <xsd:element type="stns:AvailabilityException" name="AvailabilityException">
    </xsd:element>
    <xsd:element type="stns:AvailabilityQueryException" name="AvailabilityQueryException">
    </xsd:element>
    <xsd:complexType name="AvailabilityException">
    </xsd:complexType>
    <xsd:complexType name="AvailabilityQueryException">
    <xsd:complexContent>
    <xsd:extension base="stns:AvailabilityException">
         <xsd:sequence>
         <xsd:element type="xsd:string" name="message" minOccurs="1" nillable="true" maxOccurs="1">
    </xsd:element>
         <xsd:element type="xsd:string" name="statusCode" minOccurs="1" nillable="true"
    maxOccurs="1">
    </xsd:element>
    <xsd:element type="xsd:string" name="statusText" minOccurs="1" nillable="true"
    maxOccurs="1">
    </xsd:element>
    </xsd:sequence>
    </xsd:extension>
    </xsd:complexContent>
    </xsd:complexType>
    </xsd:schema>

    Issues around user defined exceptions, to a large part, were resolved in WLS 8.1
    SP1
    (cf. http://e-docs.bea.com/wls/docs81/notes/resolved.html#1604925 ).
    Also, similar issues in the wsdl-to-service approach were resolved in WLS 8.1
    SP2 (cf. http://e-docs.bea.com/wls/docs81/notes/resolved.html#1546275).
    If you have any specific issues please feel free to contact BEA Support.
    Regards
    Shridhar
    "Brit" <[email protected]> wrote:
    >
    I am confused about the statement that WebLogic currently does not support
    Faults
    with Complex types. In a pilot project I am working on we did expose
    custom complex
    exceptions and it appeared that WebLogic correctly created the WSDL Fault
    definitions.
    Were we just lucky? Is the recommended approach to only use exceptions
    that extend
    SOAPFault?
    This may sound like a strange question because it appears WebLogic handled
    this
    correctly, but the part of the project is to document possible problem
    areas when
    exposing Web Services. If custom Faults are a problem area I need to
    addres it.
    We are working with Weblogic 8.1, but are not using Workshop.
    The web service that throws 2 custom exceptions(extend Exception); AvailabilityException
    and AvailabilityQueryException
    AvailabilityQueryException extends AvailabilityException and has some
    defined
    properties (statusCode and statusText).
    The fault definition in the wsdl is below?
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:com.cardinal.mps.availability.ejb"
    elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:com.cardinal.mps.availability.ejb">
    <xsd:element type="stns:AvailabilityException" name="AvailabilityException">
    </xsd:element>
    <xsd:element type="stns:AvailabilityQueryException" name="AvailabilityQueryException">
    </xsd:element>
    <xsd:complexType name="AvailabilityException">
    </xsd:complexType>
    <xsd:complexType name="AvailabilityQueryException">
    <xsd:complexContent>
    <xsd:extension base="stns:AvailabilityException">
         <xsd:sequence>
         <xsd:element type="xsd:string" name="message" minOccurs="1" nillable="true"
    maxOccurs="1">
    </xsd:element>
         <xsd:element type="xsd:string" name="statusCode" minOccurs="1" nillable="true"
    maxOccurs="1">
    </xsd:element>
    <xsd:element type="xsd:string" name="statusText" minOccurs="1" nillable="true"
    maxOccurs="1">
    </xsd:element>
    </xsd:sequence>
    </xsd:extension>
    </xsd:complexContent>
    </xsd:complexType>
    </xsd:schema>

  • Com.bea.xml.XmlException error for "could not create child element"

    In Workshop 9.2, after I created a project with XMLBeans Builder Builder against the xsd's and created a web service control against a wsdl, I inserted the control in a client project for consumption. However, when calling into a method of the control, I got a com.bea.xml.XmlException, saying "could not create child element" for an object parameter passed in the call to the method. The relevant info in the server console looks like this:
    Caused by: com.bea.xml.XmlException: could not create child element 'wirelessPhoneNumber' for Wrapped XMLBean operation on '<?xml version="1.0" encoding="UTF-8
    "?><m:sendSMSMessage xmlns:m="http://service.xyz.com/provider/mobile/abc/sendSMSMessage/200701/"><ns:behaviorVersion xmlns:ns="http://service.xyz.com/entity/message/2003/">0</ns:behaviorVersion><ns:custNbr xmlns:ns="http
    ://service.xyz.com/entity/party/2003/">Hello</ns:custNbr></m:sendSMSMessage>'
    Does any have an idea what this is trying to tell me?
    Thanks in advance for any help,
    Jason

    Looking into it further, I think it's the parameter wirelessPhoneNumber, which is a complex type from xsd and a java object passed to the call sendSMSMessage, that is having a namespace problem, or other problem.
    This parameter object was from XMLBeans java binding. I created and set it up like this before passing it to the call:
    PhoneNumberType phoneNumberType = phoneNumberType.Factory.newInstance();
    phoneNumberType.setFormat(PhoneNumberFormatEnum.FREEFORM);
    phoneNumberType.setFullNumber(phoneNumber);
    Obviously, com.bea.xbeanmarshal.buildtime.internal.util.XmlBeanUtil.createWrappedXBeanTopElement of XmlBeanUtil.java had a problem creating a wrapper element for it.
    Any clue from anyone?
    Jason

  • Define complex types

    Hi,
    I'm trying to define a new complex type in my .wsdl file of my bpel process project.
    I want one of the elements in this complex type to be of the same type as an element defined in one of my partner link's WSDL.
    How can I make this connection (what do I define as namespaces) from my .wsdl file to a partner link's wsdl file.
    Thank you!!!

    Thanks Clemens!
    I will try the first option.
    This is my wsdl b - the wsdl I want to import types from :
    <definitions
    targetNamespace="http://Images/WebService"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:s0="http://Images/WebService"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    >
    <import namespace="http://Images/WebService" location="webServiceFlickr.wsdl"/>
    <plnk:partnerLinkType name="webServiceFlickrHttpGet_PL">
    <plnk:role name="webServiceFlickrHttpGet_Role">
    <plnk:portType name="s0:webServiceFlickrHttpGet"/>
    </plnk:role>
    </plnk:partnerLinkType>
    <plnk:partnerLinkType name="webServiceFlickrSoap_PL">
    <plnk:role name="webServiceFlickrSoap_Role">
    <plnk:portType name="s0:webServiceFlickrSoap"/>
    </plnk:role>
    </plnk:partnerLinkType>
    <plnk:partnerLinkType name="webServiceFlickrHttpPost_PL">
    <plnk:role name="webServiceFlickrHttpPost_Role">
    <plnk:portType name="s0:webServiceFlickrHttpPost"/>
    </plnk:role>
    </plnk:partnerLinkType>
    </definitions>
    and this is the beginning of wsdl a - the one I want to import the type into :
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="process10"
    targetNamespace="http://xmlns.oracle.com/process10"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:client="http://xmlns.oracle.com/process10"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
         <types>
              <schema attributeFormDefault="qualified"
                   elementFormDefault="qualified"
                   targetNamespace="http://xmlns.oracle.com/process10"
                   xmlns="http://www.w3.org/2001/XMLSchema">
    I undestand I need to import the namespace of wsdl b , but can't figure out how,
    What do I define instead of XXX ?
    xmlns:n1="XXX">
    <import namespace="XXX" schemaLocation="XXX"/>
    Thank you !!

  • Problem in calling a WS with complex type

    Hi all...
    I have to invoke a WS that has as input type a complex type defined in the wsdl...
    <complexType name="LoginInfo">
    - <sequence>
      <element name="appCode" nillable="true" type="string" />
      <element name="login" nillable="true" type="string" />
      <element name="passwd" nillable="true" type="string" />
      </sequence>
      </complexType>the soapui request looks like this:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://com.susan/SusanWS/types">
       <soapenv:Header/>
       <soapenv:Body>
          <typ:LoginWebService>
             <LoginInfo_1>
                <appCode>WEB_SERVICES</appCode>
                <login>root</login>
                <passwd>root</passwd>
             </LoginInfo_1>
          </typ:LoginWebService>
       </soapenv:Body>
    </soapenv:Envelope>in my java code I'm trying to call it with:
    Service service = new Service();
                Call call = (Call)service.createCall();
                call.setTargetEndpointAddress( new URL( wsEndpoint ) );
    //            call.setOperationName( wsMethod );
                call.setOperationName( new QName("http://com.susan/SusanWS/types",wsMethod));
                call.addParameter( "LoginInfo_1", Constants.XSD_ANYTYPE, ParameterMode.IN );
    //            call.addParameter( "appCode", Constants.XSD_STRING, ParameterMode.IN );
    //            call.addParameter( "login", Constants.XSD_STRING, ParameterMode.IN );
    //            call.addParameter( "passwd", Constants.XSD_STRING, ParameterMode.IN );
                String[] params={appCode, login, passwd};
    //            call.setReturnType( Constants.XSD_INT );
    //            Object retval = call.invoke( new String[] {appCode, login, passwd} );
                Object retval = call.invoke( new Object[] { params } );doing so..it doesn't work...the first problem I can see...is that I don't assign a parameter name to the 3 strings I pass in the param array...
    anybody has a tip to give me on how to solve this problem?

    solved...
    I imported the wsdl into Intellij idea...which created all the needed classes, interfaces,...and used service locator and endpoint binding stubs...

Maybe you are looking for

  • Automate the justification of paragraphs in a pdf document

    How can I automate the justification of paragraphs in a pdf document? For example: I have a pdf document as output from a reporting application, containing many left-justified paragraphs. I would like all of these paragraphs to be fully justified. I

  • Timer works with Java 1.4 and not Java 1.3 - Why?!

    I am totally lost. I can run this bit of code in java 1.3 and all works fine...      ActionListener alarmtask = new ActionListener(){            public void actionPerformed(ActionEvent event){               decrementClock();                          

  • Apple Legacy Filevault Hole

    Can someone let us know when we can expect an update to fix this security hole in Lion 10.7.3 Date: Fri, 4 May 2012 20:40:07 -0400 From: "David I. Emery" <die[at]dieconsulting.com> To: cryptography[at]randombit.net Subject: [cryptography] Apple Legac

  • LSMW idoc Inbound Processing settings

    Hi, We have done LSMW with BAPI method to create Bank master. In Idoc Inbound Processing settings - We created partner type as 'B' i.e, for BANK While creating Partner Number it is not allowing to create Partner Number. The error is  "Enter a permiss

  • Consignment pick up

    Hi Gurus, I have an order which is consignment pick up and I am not able to create delivery as schedule lines is not confirming any quantity. I have checked in MMBE & MB58 that stock is available at customer in consignment! Can you please send some s