URGENT! SimpleDeserializer encountered a child element, which is NOT expect

Hi all,
I am very new to web services.
I am calling a web service which is developed in .Net
Please help me out to solve the error as
"*SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize*"
My code is as below
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
public class CallingWebServiceClient
     public static void main(String [] args)
          try
               String endpointURL =
                    "http://10.40.4.76/InSiteWebServices/WSNamedMaint.asmx";
               String name = "ABC";
               //Object serviceData = new Object();
               //Object resultStatus = new Object();
               Service service = new Service();
               Call call = (Call) service.createCall();
               call.setTargetEndpointAddress( new java.net.URL(endpointURL) );
               call.setOperationName("RequestAllValues");
               call.addParameter( name, XMLType.XSD_STRING, ParameterMode.IN);
               //call.addParameter( "serviceData", XMLType.XSD_ANY, ParameterMode.OUT);
               //call.addParameter( "resultStatus", XMLType.XSD_ANY, ParameterMode.OUT);
               call.setProperty(call.SOAPACTION_USE_PROPERTY, new Boolean(true));
               call.setProperty(call.SOAPACTION_URI_PROPERTY, "http://www.xyz.com/WebService/WSNamedMaint/RequestAllValues");
               call.setReturnType( org.apache.axis.encoding.XMLType.XSD_STRING );
               String ret = (String) call.invoke( new Object[] { name } );
               System.out.println("Value is : " + ret);
          catch (Exception e)
               System.err.println(e.toString());
}Please let me know the solution as soon as possible.
Thanks

Hi,
Regarding to the query which I have posted may have following possibility.
This error may be due to the arguments which it gives as the output, as some of those arguments are the object of some other class.
As the web service which I am trying to access is developed in .Net and requires three parameters, out of which one parameter named as "name" is input parameter while the other two are the output parameters, which web service provide as output. And may be the output which it provides may also be developed in .Net only and thats why while passing the input variable, it is not able to convert its output variable into the String.
Please provide your valuable comments and solution to that.
Thanks

Similar Messages

  • SimpleDeserializer encountered a child element, which is NOT expected,

    Hi All,
    I created a webservice using JAVA.
    Got WSDL for a SAP Funtional Module(BAPI_MATERIAL_SAVEDATA) and created Java Classes using (WSDL2Java -t XXX.wsdl ).
    Wrote a Java Client Prog to invoke the services.
    While Invoking the service from a Java Client program by Passing all the parameters,
    and the parameters getting updated in SAP
    BUT Getting the following Exception, not getting the response porperly:
    AxisFault
    faultCode: Server.userException
    faultSubcode:
    faultString: org.xml.sax.SAXException: SimpleDeserializer encountered a child e
    lement, which is NOT expected, in something it was trying to deserialize.
    faultActor:
    faultNode:
    faultDetail:
            stackTrace:org.xml.sax.SAXException: Simple
    Deserializer encountered a child element, which is NOT expected, in something it
    was trying to deserialize.
            at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDe
    serializer.java:145)
            at org.apache.axis.encoding.DeserializationContext.startElement(Deserial
    izationContext.java:1035)
            at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja
    va:165)
            at org.apache.axis.message.MessageElement.publishToHandler(MessageElemen
    t.java:1141)
            at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
            at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
            at org.apache.axis.client.Call.invoke(Call.java:2467)
            at org.apache.axis.client.Call.invoke(Call.java:2366)
            at org.apache.axis.client.Call.invoke(Call.java:1812)
            at SAPClient.materialSaveData(SAPClient.java:700)
            at SAPClient.main(SAPClient.java:427)
            hostname:hp-2535
    Cheers, all help would be greatly appreciated
    Vijay

    Hi!
    Resolved it, but don't see "resolved by myself" option. I was calling the wrong service.

  • Org.xml.sax.SAXException:SimpleDeserializer encountered a child element..

    Hi All,
    I created a following program using "GetReportDefintion" method provided by BI Publisher Web Services
    package bip_webservices;
    import com.oracle.xmlns.oxp.service.PublicReportService.ItemData;
    import com.oracle.xmlns.oxp.service.PublicReportService.ReportRequest;
    import com.oracle.xmlns.oxp.service.PublicReportService.ReportResponse;
    import com.oracle.xmlns.oxp.service.PublicReportService.ParamNameValue;
    import com.oracle.xmlns.oxp.service.PublicReportService.ReportDefinition;
    import com.oracle.xmlns.oxp.service.PublicReportService.ScheduleRequest;
    import com.oracle.xmlns.oxp.service.PublicReportService.DeliveryRequest;
    import com.oracle.xmlns.oxp.service.PublicReportService.EMailDeliveryOption;
    import  java.io.FileOutputStream;
    import  java.io.OutputStream;
    import java.net.MalformedURLException;
    import java.rmi.RemoteException;
    import  java.util.Calendar;
    import javax.xml.rpc.ServiceException;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.encoding.XMLType;
    import org.apache.axis.encoding.ser.BeanDeserializerFactory;
    import org.apache.axis.encoding.ser.BeanSerializerFactory;
    import  javax.xml.namespace.QName;
    import  javax.xml.rpc.ParameterMode;
    import  java.net.URL;
    public class BIP_GetReportDefinition {
        public static void main(String[] args) throws ServiceException, MalformedURLException, RemoteException{
         try{
            final String bipEndpoint = "http://localhost:9704/xmlpserver/services/PublicReportService?wsdl";
            final String bipNamespace = "http://xmlns.oracle.com/oxp/service/PublicReportService";
            final String xdofile = "/MyReports/SummaryCustomerReport/SummaryCustomerReport.xdo";
            Service service = new Service();
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(new URL(bipEndpoint));
           System.out.println("BEGIN TESTING getReportDefinition");
            // register the ReportDefinition class
            QName reportDef = new QName(bipNamespace, "ReportDefinition");
            call.registerTypeMapping(ReportDefinition.class, reportDef,
                            BeanSerializerFactory.class, BeanDeserializerFactory.class);
            // register the ParamNameValue class
            QName nmvals = new QName(bipNamespace, "ParamNameValue");
            call.registerTypeMapping(ParamNameValue.class, nmvals, BeanSerializerFactory.class, BeanDeserializerFactory.class);
            call.setOperationName(new QName(bipNamespace, "getReportDefinition"));
            call.addParameter("reportAbsolutePath", XMLType.XSD_STRING, ParameterMode.IN);
            call.addParameter("userID", XMLType.XSD_STRING, ParameterMode.IN);
            call.addParameter("password", XMLType.XSD_STRING, ParameterMode.IN);
            call.setReturnClass(ReportDefinition.class);
            // issue the request
            ReportDefinition reportDefn = (ReportDefinition) call.invoke(
                new Object[] { xdofile, "Administrator", "Administrator"});
            System.out.println("Report Definition Returns with \n Default Output Format = " + reportDefn.getDefaultOutputFormat());
            ParamNameValue params [] = reportDefn.getReportParameterNameValues();
            if (params != null) {
                for (int i = 0; i < params.length; i++) {
                    System.out.print("Parameter " + params.getName() + ":");
    if (params[i].getValues() != null) {
    for (int j = 0; j < params[i].getValues().length; j++)
    System.out.print(" " + params[i].getValues()[j]);
    } else
    System.out.print(" null");
    System.out.println(" - multiple values? " + params[i].isMultiValuesAllowed());
    System.out.println("END TESTING getReportDefinition");
    }catch(Exception e){
    e.printStackTrace();
    I am getting following exception message. Anyone has any ideas what could be the mistake ?
    SEVERE: Exception:
    org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
            at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:145)
            at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
            at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
            at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
            at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
            at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
            at org.apache.axis.client.Call.invoke(Call.java:2467)
            at org.apache.axis.client.Call.invoke(Call.java:2366)
            at org.apache.axis.client.Call.invoke(Call.java:1812)
            at bip_webservices.BIP_GetReportDefinition.main(BIP_GetReportDefinition.java:67)
    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    faultSubcode:
    faultString: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
    faultActor:
    faultNode:
    faultDetail:
            {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
            at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:145)
            at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
            at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
            at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
            at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
            at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
            at org.apache.axis.client.Call.invoke(Call.java:2467)
            at org.apache.axis.client.Call.invoke(Call.java:2366)
            at org.apache.axis.client.Call.invoke(Call.java:1812)
            at bip_webservices.BIP_GetReportDefinition.main(BIP_GetReportDefinition.java:67)
            {http://xml.apache.org/axis/}hostname:mildh0228
    org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
            at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
            at org.apache.axis.client.Call.invoke(Call.java:2470)
            at org.apache.axis.client.Call.invoke(Call.java:2366)
            at org.apache.axis.client.Call.invoke(Call.java:1812)
            at bip_webservices.BIP_GetReportDefinition.main(BIP_GetReportDefinition.java:67)
    Caused by: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
            at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:145)
            at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
            at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
            at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
            at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
            at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
            at org.apache.axis.client.Call.invoke(Call.java:2467)
            ... 3 moreThanks for giving this problem a look.
    -Sookie

    Hi Sookie,
    I found the problem is with couple of child parameters are not registered the deserializer. There're couple of additional classes needs to be registerd.
    // register the TemplateLabelValue class
    QName templateval = new QName(bipNamespace, "TemplateFormatLabelValue");
    Class cls = TemplateFormatLabelValue.class;
    call.registerTypeMapping(cls, templateval, BeanSerializerFactory.class, BeanDeserializerFactory.class);
    // register the TemplateLabelValues class
    QName templatevals = new QName(bipNamespace, "TemplateFormatsLabelValues");
    cls = TemplateFormatsLabelValues.class;
    call.registerTypeMapping(cls, templatevals, BeanSerializerFactory.class, BeanDeserializerFactory.class);
    Could you please give it a try?
    Thanks.
    Yang

  • SimpleDeserializer encountered a child element..webservice error

    when I invoke a webservice using Oracle stored procedure,I'm getting the fault response below :
    HTTP response status code: 500
    HTTP response reason phrase: Internal Server Error
    <?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/XMLSchemainstance"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server.userException</faultcode><faultstring>org.xml.sax.SAXException: SimpleDeserializer encountered a child element,
    which is NOT expected, in something it was trying to deserialize.</faultstring><detail><ns1:hostname
    xmlns:ns1="http://xml.apache.org/axis/">suznt266.qintra.com</ns1:hostname></detail></soapenv:Fault>
    </soapenv:Body></soapenv:Envelope>
    Any ideas about the cause and resolution?..
    Thanks in advance!!!!
    Regards,
    Bhagat

    If you posted the whole WSDL file, it would be more helpful.
    I suppose your WSDL uses rpc/encoding. Both operations in your WSDL expects only one parameter of xsd:float. Well your client code passed an array float(new Object[] {new Float(3)}).
    This should have caused the exception.

  • SimpleDeserializer encountered a child element ... Please HELP!!!!

    Good Morning Everyone,
    I want to thank you for reading my problem and see if you can help me. The deadline for this project is monday and I am struggling to make it work. I am using axis 1.4 .
    I created the web method
    public void GetFilters( javax.xml.rpc.holders.BooleanHolder GetFiltersResult, CCRFiltersHolder CCRFilters,
    javax.xml.rpc.holders.StringHolder Message, javax.xml.rpc.holders.StringHolder XMLData ){
    First, I needed to create the CCRFilters as a CCRFiltersHolder because is an IN/OUT parameter.
    public class CCRFiltersHolder implements javax.xml.rpc.holders.Holder{
    public CCRFiltersList value;
    public CCRFiltersHolder() {
    public CCRFiltersHolder(CCRFiltersList value) {
    this.value = value;
    public class CCRFiltersList implements Serializable{
    private CCRFilters[] filterList;
    public CCRFilters[] getFilterList() {
    return filterList;
    public void setFilterList(CCRFilters[] filterList) {
    this.filterList = filterList;
    public CCRFilters getFilterList(int index) {
    return filterList[index];
    public void setFilterList(int index, CCRFilters filterList) {
    this.filterList[index] = filterList;
    public class CCRFilters implements Serializable {
    private String FieldName;
    private String RelationShip;
    public String getFieldName() {
    return FieldName;
    public void setFieldName(String pFieldName) {
    FieldName = pFieldName;
    public String getRelationShip() {
    return RelationShip;
    public void setRelationShip(String pRelationShip) {
    RelationShip = pRelationShip;
    My wsdd file looks like:
    <service name="CCR" provider="java:RPC" style="wrapped" use="literal" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <parameter name="className" value="com.harris.mercury.gemsccrintegration.CCR"/>
    <parameter name="allowedMethods" value="*"/>
    <parameter name="typeMappingVersion" value="1.2"/>
    <namespace>http://tempuri.org/</namespace>
    <parameter name="schemaUnqualified" value="http://www.gemsgov.com/CCR/"/>
    <parameter name="wsdlServicePort" value="CCRPort"/>
    <operation name="GetFilters" soapAction="http://www.gemsgov.com/CCR/GetFilters" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <parameter name="GetFiltersResult" type="xs:boolean" mode="OUT"/>
    <parameter name="CCRFilters" mode="INOUT" type="rtns:CCRFiltersHolder" xmlns:rtns="http:////www.gemsgov.com/CCR/GetFilters"/>
    <parameter name="Message" type="xs:string" mode="INOUT"/>
    <parameter name="XMLData" type="xs:string" mode="INOUT"/>
    </operation>
    <typeMapping
    xmlns:ns="http://www.gemsgov.com/CCR/GetFilters" qname="ns:CCRFiltersHolder"
    type="java:com.harris.mercury.cashiering.gemsintegration.holder.CCRFiltersHolder"
    serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
    deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
    encodingStyle=""
    />
    <typeMapping
    xmlns:ns1="http://www.gemsgov.com/CCR/GetFilters" qname="ns1:CCRFiltersList"
    type="java:com.harris.mercury.cashiering.gemsintegration.CCRFiltersList"
    serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
    deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
    encodingStyle=""
    />
    <typeMapping
    xmlns:ns2="http://www.gemsgov.com/CCR/GetFilters"
    qname="ns2:CCRFilters"
    type="java:com.harris.mercury.cashiering.gemsintegration.CCRFilters"
    serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
    deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
    encodingStyle=""
    />
    <typeMapping xmlns:soapenc="http://www.gemsgov.com/CCR/GetFilters"
    qname="soapenc:CCRFiltersArray"
    type="java:com.harris.mercury.cashiering.gemsintegration.CCRFilters[]"
    serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
    deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
    encodingStyle=""
    />
    </service>
    Even in my test program, I added the following code :
    Call call = (Call) service.createCall();
    QName qn = new QName( "http://www.gemsgov.com/CCR/GetFilters", "CCRFiltersHolder" );
    call.registerTypeMapping("com.harris.mercury.cashiering.gemsintegration.holder.CCRFiltersHolder".getClass(), qn,
    BeanSerializerFactory.class, BeanDeserializerFactory.class);
    QName qn4 = new QName( "http://www.gemsgov.com/CCR/GetFilters", "CCRFiltersList" );
    call.registerTypeMapping(CCRFiltersList.class, qn4,BeanSerializerFactory.class, BeanDeserializerFactory.class);
    QName qn1 = new QName( "http://www.gemsgov.com/CCR/GetFilters", "CCRFilters" );
    call.registerTypeMapping(CCRFilters.class, qn1, BeanSerializerFactory.class, BeanDeserializerFactory.class);
    QName qn3 = new QName( "http://schemas.xmlsoap.org/soap/encoding", "CCRFiltersArray" );
    call.registerTypeMapping(CCRFilters[].class, qn3, new ArraySerializerFactory(), new ArrayDeserializerFactory());
    But when running, everytime I get the following message : SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
    Please any help whould be appreciate it.
    Thanks a lot,
    Martha
    Edited by: Melliza on Sep 25, 2009 10:00 AM

    Hi,
    Regarding to the query which I have posted may have following possibility.
    This error may be due to the arguments which it gives as the output, as some of those arguments are the object of some other class.
    As the web service which I am trying to access is developed in .Net and requires three parameters, out of which one parameter named as "name" is input parameter while the other two are the output parameters, which web service provide as output. And may be the output which it provides may also be developed in .Net only and thats why while passing the input variable, it is not able to convert its output variable into the String.
    Please provide your valuable comments and solution to that.
    Thanks

  • Deleting Child records which are not associated to any parent

    Hi
    We have seen that in the application though the Activty records has been deleted the child records like sample dropped and the roduct details has remained in the system. This happened cos in R18 when contact was deleted activty got deleted but the Activity child records remained in the application.
    we found that child records are present by looking into record utilization.
    Wanted to know if there is any way to delete these child records from teh application cos we are unable to query for them from UI as well as via webservices.
    any pointers would be helpful.
    -MR

    There is not a reporting subject area or folder available on Books. The workaround we employed was to create a field on the entity that was assigned books and that field was checked when the books were assigned. We are using web services to assign books and the web services also updates the field "Books Assigned". This gives us a way of reporting on that field to see those records without book assigned.

  • Just bought Elements 13. Input serial number (starting 1057), which is not recognised and the installation stalls here. Urgent help please...

    Just bought Elements 13. Input serial number (starting 1057), which is not recognised and the installation stalls here. Urgent help please...

    Maryrhire910 I am sorry that you are facing difficulty downloading and installing Photoshop Elements 12.  Are you downloading the installation files from Download Photoshop Elements products | 13, 12, 11, 10?  If so what specific error are you receiving?

  • In Business Rule child elements of Unbounded element are not visible.

    Hi All,
    Jdev version 11.1.1.7.0
    I am facing one issue in Business Rule...
    Scenario: I am creating Approval Service (BPEL) with Human Work flow and Bunises Rule.
    I am assingning participant in HW by using Rule based(Connecting HW and BR).
    Problem here is:
    Shema has "unbounded" element.
    <element name="ExpenseItem" maxOccurs="unbounded">
         <complexType>
          <sequence>
           <element name="ItemID" type="string"/>
           <element name="ItemName" type="string"/>
           <element name="ItemPrpjectID" type="string"/>
           <element name="ItemStatus" type="string"/>
          </sequence>
         </complexType>
        </element>
    Whenever I create Busines rules to configure rules.
    While configuring rules child elements of  ExpenseItem are not visible. But those are neccesary to configure rules.
    If you can help to me resolve would help.
    Is it a bedault behaviour of BR? If so how can i acheive this?
    Thanks,
    Santosh

    Solution found:
    Click on RuleSet which you have created.
    Expand Rule inside it.
    Enable Advanced mode and Tree mode and click OK.
    Select Root as Task and click on insert pattren and create pattren which is based on unbounded element (here its meant as fact)
    Once you create pattren , will be able access elements under unbounded element for Business rule configuration.

  • Removing xmlns in child element

    Hi,
    I am getting xmlns="" in child , i want to remove the xmlns="" from the child element.
    Ex: Generated XML File-
    <GENERATEFILES xmlns="http://getit.com/generatedFile" >
    <GENERATE xmlns="">
    </GENERATE >
    </GENERATEFILES >
    in the code i have added Namespace to display 'xmlns' in' GENERATEFILES ' element,
    Element root = new Element("GENERATEFILES ");
    Namespace IP_NAMESPACE = Namespace.getNamespace("", "http://getit.com/generatedFile");//added xmlns for GENERATEFILES .
    root.setNamespace(IP_NAMESPACE);
    Element child = new Element("GENERATE ");

    EJP wrote:
    The XML means the same thing with and without the internal namespace declarations.I don't believe that's true. If I'm not mistaken, the GENERATEFILES element is in the "http://getit.com/generatedFile" namespace. And since this namespace is declared to be the default namespace, then the GENERATE element would inherit that namespace unless some other declaration was provided. In the example posted there is another declaration provided on the GENERATE element, namely one which declares that the element is in no namespace.
    If the OP gets his wish of not having that declaration present, that would result in the GENERATE element also being in the "http://getit.com/generatedFile" namespace, which can (as I believe you meant to say) be arranged by creating the GENERATE element in that namespace.
    However the real question for the OP is "What namespace should the GENERATE element be in?" Attempting to control the namespace declarations without understanding them is a bad idea.

  • 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

  • Order By Clause For Retrieving Child Elements

    Hi All,
    I got a toplink question regarding adding an order by clause for retrieving the child elements in a 1 to many mapping.
    I have an Order with a collection of Order Events. ( one to many mapping). The OrderEvent model is the super class of all events and it is abstract. The mapping for the order event descriptors has a class hierarchy mapping which uses a table for its super class (i.e OrderEvent abstract class) and different tables for its sub class elements (e.g ShippingEvent, LifeCycleEvent etc which are concrete classes).
    If I add an order by clause to order the event by a spuerClassProperty in the super class descriptor, it gets ignored and the ordering is done by the alphabetic order of the indicator field values.
    I also noticed that if there is more than one sub class instance for a specific class indicator value, the ordering by is observed.
    I got around it with a Comparator, but just want to know if it could be possible to achieve this with toplink.
    Regards.

    Does the Order By appear on the SQL that get issued? TopLink only does ordering on the database, and not in memory. This means that subclass queries will be ordered per type, on not as one big list.
    A Comparator is a good solution.

  • ADF Faces showDetailItem seems to "load" child elements twice on tab select

    Problem Summary:
    Child elements of showDetailItem are being loaded/executed twice. The parent of the showDetailItem is a showOneTab, and the child of showDetailItem is an af:objectImage, which calls a servlet I have written that outputs an image.
    The problem I am having is that when I click on a tab (showDetailItem) my servlet is called twice. It is as if the af:objectImage line of my JSP is executed twice.
    I have proven this with breakpoints in the servlet and printing a message to the console. The doGet() method of my servlet is called twice. Using breakpoints in the JSP I see the JSP is executed/read only once.
    Details:
    I am requesting help with this problem as I cannot solve it one my own. I have tried the following, but have had no success.
    1. Searched the web for a similar problem.
    2. Searched this forum for a similar problem.
    3. Consulted the ADF Developer Guide version 10.1.3.0
    4. Upgraded my version of JDeveloper to 10.1.3.2.0, which has ADF Faces (oracle.faces.dt) version 10.1.3.40.66.
    5. Debugging with print statements and stepping through JSP and servlet code.
    6. Created the simplest JSP possible that I could still produce the problem with.
    The Scenario:
    My goal is to use the ADF Faces showOneTab and showDetailItem tags to create two tabbed panels that will contain a blank tab (tab one) and an image (on tab 2).
    I have written a servlet, BrowserImage, which takes and ID as a parameter retrieves a BLOB from view object and then outputs a jpeg image to the browser. This is done by using the af:objectImage tag and specifying my servlet in the source parameter. The image is displayed fine, but I don't want the servlet to be called twice for performance reasons.
    Here is the simplest JSP that contains the problem.
    Note: I tried to simplify even more by calling the servlet in different ways (jsp:include etc..), but was unable to produce the problem. I think it is key that I call the servlet using an ADF Faces tag (af:objectImage).
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces/html" prefix="afh"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces" prefix="af"%>
    <%@ page import="javax.faces.context.FacesContext"%>
    <%@ page import="javax.faces.el.ValueBinding"%>
    <%@ page import="oracle.adf.model.BindingContext"%>
    <%@ page import="oracle.adf.model.binding.DCDataControl"%>
    <%@ page import="oracle.jbo.ApplicationModule"%>
        <%! FacesContext fc = FacesContext.getCurrentInstance(); %>
        <%! ValueBinding vb = fc.getApplication().createValueBinding("#{data}"); %>
        <%! BindingContext bc = (BindingContext)vb.getValue(fc); %>
        <%! DCDataControl dc = bc.findDataControl("AdSearchAppModuleDataControl"); %>
        <%! ApplicationModule am = (ApplicationModule)dc.getDataProvider();%>
        <% session.setAttribute("theAm", am); %>  
    <f:view>
      <afh:html>
        <afh:head title="showOneTest">
          <meta http-equiv="Content-Type"
                content="text/html; charset=windows-1252"/>
        </afh:head>
        <afh:body>
          <af:form>
            <af:showOneTab position="above">
              <af:showDetailItem text="showDetailItem 1">
              </af:showDetailItem>
              <af:showDetailItem text="showDetailItem 2">
                <af:objectImage source="/BrowserImage?imgId=1"/>
              </af:showDetailItem>
            </af:showOneTab>
          </af:form>
        </afh:body>
      </afh:html>
    </f:view>Note: The Java Script code included in the JSP is used to get an application module instance and pass it to my servlet in the session scope, so my servlet can access a view object, which contains the BLOB to output. I thought I should explain this as it may look confusing.
    Any help would be appreciated.
    Thanks,
    Mark

    I don't think adding a flag to my servlet will work. I left out some details in the original posting that will likely make the flag solution unusable.
    It is true that when I click on a tab that my servlet is called twice. My main goal is to ensure that the BrowserImage servlet only called when truly needed. The part I left out of the original posting is that if I click on a tab for the first time I can see my messages in the console indicating it was called twice.
    . BrowserImage severlet called (doGet)
    . BrowserImage servlet called (doGet)
    The key is if I click on the tab again I only see the message appear once.
    . BrowserImage severlet called (doGet)
    At first I thought this was the correct behavior, but I now feel this is wrong as I think the image is being cached locally on the client browser by ADF Faces, so the first call to BrowserImage is not made, but for some reason on the second "load" of the panel the BrowserImage servlet is called.
    To summarize the new details, I still think the showDetailItem is "loading" twice, but BrowserImage is only being called once, because the first loading used a locally cached image. This is my best guess, I did not prove this 100%. I did prove that the image is shown on the page before my servlet outputs it this made me start thinking about the client cache. Also I think it is an ADF Faces specific cache because if I use the "img" tag I don't think caching is used and the image is output by the call to my servlet. I don't want to use img for two reasons, 1 I would d like to use the client cache, 2 the img tag will not stay inside the showDetailItem, showDetail Item needs af: components as children it seems.
    So the reason I feel this problem can't be solved with a flag is because I think the image will be cached on the client side and if the showDetailItem is loaded twice it seems my servlet is called once, but it was not required to be called to render the image. I can't use the concept of checking for the servlet being called by the same session in very quick succession, because the real problem I am trying to solve is the servlet should not be called at all, if the client cache had been used.
    Perhaps there is a way for my servlet to determine if the client cache was used, but I have no idea how.
    I should also point out I am displaying images in a table instead of a showOneTab using the same servlet and technique and the client cache is always used correctly, the BrowserImage is only called if the image is not cached on the client. This is why I think this is a showOneTab problem.
    Sorry for leaving out these details, but I did not want to confuse the original posting with too much info. I figured if the tab was only loaded once, the cached image would be used and all would be good.
    Again if you can provide more help I really appreciate it.

  • Help on creating and deleting xml child elements using Toplink please.

    Hi there,
    I am trying to build a toplink xml demo illustrating toplink acting as the layer between my java code and an xml datasource.
    After pulling my custom schema into toplink and following the steps in http://www.oracle.com/technology/products/ias/toplink/preview/10.1.3dp3/howto/jaxb/index.htm related to
    Click on Mapping Workbench Project...Click on From XML Schema (JAXB)...
    I am able to set up java code which can run get and sets against my xml datasource. However, I want to also be able create and delete elements within the xml data for child elements.
    i.e. in a simple scenario I have a xsd for departments which has an unbounded element of type employee. How does toplink allow me to add and or remove employees in a department on the marshalled xml data source? Only gets and sets for the elements seem accessible.
    In my experience with database schema based toplink demos I have seen methods such as:
    public void setEmployeesCollection(Collection EmployeesCollection) {
         this.employeesCollection = employeesCollection;
    Is this functionality available for xml backended toplink projects?
    cheers
    Nick

    Hi Nick,
    Below I'll give an example of using the generated JAXB object model to remove and add a new node. The available APIs are defined in the JAXB spec. TopLink also supports mapping your own objects to XML, your own objects could contain more convenient APIs for adding or removing collection members
    Example Schema
    The following XML Schema will be used to generate a JAXB model.
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
         elementFormDefault="qualified" attributeFormDefault="unqualified">
         <xs:element name="department">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="employee" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="employee">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="name" type="xs:string"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
    </xs:schema>---
    Example Input
    The following document will be used as input. For the purpose of this example this XML document is saved in a file called "employee-data.xml".
    <department>
         <employee>
              <name>Anne</name>
         </employee>
         <employee>
              <name>Bob</name>
         </employee>
    </department>---
    Example Code
    The following code demonstrates how to use the JAXB APIs to remove the object representing the first employee node, and to add a new Employee (with name = "Carol").
    JAXBContext jaxbContext = JAXBContext.newInstance("your_context_path");
    Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
    File file = new File("employee-data.xml");
    Department department = (Department) unmarshaller.unmarshal(file);
    // Remove the first employee in the list
    department.getEmployee().remove(0);
    // Add a new employee
    ObjectFactory objectFactory = new ObjectFactory();
    Employee newEmployee = objectFactory.createEmployee();
    newEmployee.setName("Carol");
    department.getEmployee().add(newEmployee);
    Marshaller marshaller = jaxbContext.createMarshaller();
    marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
    marshaller.marshal(department, System.out);---
    Example Output
    The following is the result of running the example code.
    <department>
         <employee>
              <name>Bob</name>
         </employee>
         <employee>
              <name>Carol</name>
         </employee>
    </department>

  • Getting XML child elements

    Dear Indesign scripters,
    This script is making from all the XML tags ParagraphStyles.
    But it refuses to take the child elements. Do I have to use XPath expression? And how?
    function main() { 
      var xes, n, doc, ps, xe; 
      if ( !app.documents.length ) return; 
      doc = app.activeDocument;
      xes = doc.xmlElements[0].xmlElements; 
      n = xes.length; 
      while ( n-- ) { 
      xe = xes[n];
      st = doc.paragraphStyles.itemByName (xe.markupTag.name ); 
      !st.isValid && doc.paragraphStyles.add({name:xe.markupTag.name}); 
    main();
    The XML
    <Workbook> 
         <Element_A_01> 
              <Element_A_01></Element_A_01> 
         </Element_A_01> 
         <Element_B_02> 
              <Element_B_02></Element_B_02> 
         </Element_B_02> 
    </Workbook>
    Greetings from Holland

    The code creates two paragraph styles namely Element_A_01 and Element_B_02. These two are created for the immediate child nodes of the Workbook node. Now it seems that you are trying to create pstyles for all the nodes in the XML, which in your case would still be these two as Element_A_01 has a child node that is also named Element_A_01 and the same is the case for Element_B_02.
    If i get your point right then you need to create 4 pstyles if all the nodes have different names, but that is not working. For this you will have to recursively traverse each node that you get from the code xes[n].
    The code be something like this
    function main() {   
      var xes, n, doc, ps, xe;   
      if ( !app.documents.length ) return;   
      doc = app.activeDocument; 
      xes = doc.xmlElements[0].xmlElements; //This gives the immediate child nodes of the Workbook node, hence the length in the next statement is 2  
      n = xes.length;   
      while ( n-- ) {   
      xe = xes[n];   //Here you need to recursively traverse the node xe
      //The no of child elements of xe can be obtained as xe.xmlElements.length
      //First element can be obtained by xe.xmlElements[0]
    main();
    Hope this solves the issue

  • Reference to child element

    How can we reference to an element which is added dynamically on runtime?
    Example code:
    <?xml version="1.0" encoding="utf-8"?>
    <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
        xmlns:mx="library://ns.adobe.com/flex/mx" applicationComplete="init(event)">
    <fx:Script>
    <![CDATA[
        import mx.events.FlexEvent; 
        protected function init(event:FlexEvent):void {
            trace(button1.label); 
            var newbtn:Button = new Button();
            newbtn.label = "New Button";
            newbtn.id = "button3";
            newbtn.name = "button3"; 
            mygroup.addElement(newbtn); 
            trace(this["button3"].label);
    ]]>
    </fx:Script>
    <s:HGroup id="mygroup">
        <s:Button id="button1" label="Button 1" />
        <s:Button id="button2" label="Button 2" />
    </s:HGroup>
    </s:WindowedApplication>
    When I try to run above code, it dispatch error
    Error #1069: Property button3 not found on project1 and there is no default value.
    So, how can I call to the newly added button?
    Thank you.

    Yue_Hong wrote:
    Tried. Not working.
    It wouldn't . "button3" is a child of the group.
    Try myGroup.getChildByName("button3");

Maybe you are looking for

  • For Those Having Problems with iTunes 7.0 Not Recognizing Your iPod

    Hello all: So I was having the same issues that I have seen many others have. I install iTunes 7.0 and can no longer get my iPod to connect. I was about ready to uninstall and revert back to 6.0.5. However, I tried this instead: 1. Close iTunes. 2. C

  • Do you know how to use Flash? can you help?

    hi all, Do you know how to use Flash? I have been trying for months to find someone who can use flash, who can help me, with no luck. I need my links on my website updating, just a couple of them need the text changing as i need to change the name/ti

  • WBS Element Name Change

    Hi, User wants to change the WBS element Name, but the field is greyed out. User has the access to CJ02 but only the long text is open to change but WBS Element Name / ID field is freezed and can not be changed. The current status of WBS element is r

  • Strange lines in messages.log

    Hi all, we have RAC installation with two nodes. On both of them is some strange message in /var/log/messages.log written twice per second. Because of this messages.log is growing in size very fast. I'm totally confused which process is responsible u

  • Subscribing to my iCloud iCal on employer's laptop

    I have an iCloud account, I've successfully moved my personal calender from "on my mac" to the cloud and can see it on both my iMac and my iPhone.  Now I would like to subscribe to my personal iCal calender to see it on my employer's MacBookPro(os10.