Null Values From MS Web Services Toolkit Client

Hi,
I've been bashing my head against a wall on this one for too long now.
I've got a JAX-WS web service deployed to Glassfish v2 b33 which works fine when called by a Java client. It also works fine when methods with no parameters are called from the MS client, i.e. simple and complex types are returned as they should be. However the problem I am having is that when the web service methods that take parameters are called from the MS client, the values received by the service are always null. I've montitored the service and values are being sent in the soap request, but a simple System.out.println statement in the first line of the method indicates a null value. I've captured a request from the Java client and the MS client to show the difference:
A java request:
<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:Header/>
    <soapenv:Body>
     <ns0:getConfig xmlns:ns0="http://ws.firestorm.alternativenetworks.com/">
             <arg0>Inbound</arg0>
     </ns0:getConfig>
    </soapenv:Body>
</soapenv:Envelope>and a request from the web services toolkit:
<SOAP-ENV:Envelope
     xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
     xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema"
     xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/">
     <SOAP-ENV:Header/>
     <SOAP-ENV:Body>
           <SOAPSDK4:getConfig xmlns:SOAPSDK4="http://ws.firestorm.alternativenetworks.com/">
          <SOAPSDK4:arg0>Inbound</SOAPSDK4:arg0>
     </SOAPSDK4:getConfig>
     </SOAP-ENV:Body>
</SOAP-ENV:Envelope>I've tried everything I can think of, including changing the style from RPC/LITERAL to DOCUMENT/LITERAL, but the Java web service just seem to like the way the SOAP message is wrapped up.
Any help on this would be greatly appreciated.
Cheers
Tony

Thanks Milan, your suggestion put me on the right track, however I've hit another snag.
I decided the best way to solve the problem was to use the Glassfish Transformation Rules feature to take the SOAP request and transform it to a valid format before reaching the code. The XSLT file I created looks like this (I'm no XSLT guru so this will definitely need some tidying up, but for now it works): <?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet  version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
     xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema"
     xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/">
     <xsl:output method="xml" indent="yes"/>
     <xsl:template match="*">
          <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates/></xsl:copy>
     </xsl:template>
     <xsl:template match="/SOAP-ENV:Envelope/SOAP-ENV:Body/*">
          <xsl:copy>
               <xsl:copy-of select="@*"/>
               <xsl:for-each select="*">
                    <xsl:text disable-output-escaping="yes"><arg</xsl:text>
                    <xsl:value-of select="position() - 1"/>
                    <xsl:text disable-output-escaping="yes">></xsl:text>
                    <xsl:value-of select="."/>
                    <xsl:text disable-output-escaping="yes"></arg</xsl:text>
                    <xsl:value-of select="position() - 1"/>
                    <xsl:text disable-output-escaping="yes">></xsl:text>
               </xsl:for-each>
          </xsl:copy>
     </xsl:template>
</xsl:stylesheet> which transforms the problem SOAP request: <SOAP-ENV:Envelope
     xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
     xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema"
     xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/">
     <SOAP-ENV:Header/>
     <SOAP-ENV:Body>
           <SOAPSDK4:getConfig xmlns:SOAPSDK4="http://ws.firestorm.alternativenetworks.com/">
          <SOAPSDK4:arg0>Inbound</SOAPSDK4:arg0>
     </SOAPSDK4:getConfig>
     </SOAP-ENV:Body>
</SOAP-ENV:Envelope> to the following valid format: <?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope
     xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
     xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema"
     xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAP-ENV:Header/>
   <SOAP-ENV:Body>
      <SOAPSDK4:getConfig xmlns:SOAPSDK4="http://ws.firestorm.alternativenetworks.com/">
     <arg0>Inbound</arg0>
      </SOAPSDK4:getConfig>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope> But when I load the .xsl file using the Transformation Rules page and call the web service using the Microsoft Web Services Toolkit, I'm getting the following exception: [#|2007-05-11T09:23:46.530+0100|INFO|sun-appserver9.1|javax.enterprise.system.tools.admin|_ThreadID=15;_ThreadName=Thread-15;com.sun.enterprise.admin.event.wsmgmt.TransformationRuleEvent -- server [1 Change(s), Id:1, ts:1178871826530];|ADM1041:Sent the event to instance:[com.sun.enterprise.admin.event.wsmgmt.TransformationRuleEvent -- server [1 Change(s), Id:1, ts:1178871826530]]|#]
[#|2007-05-11T09:27:31.675+0100|INFO|sun-appserver9.1|javax.enterprise.system.tools.admin|_ThreadID=12;_ThreadName=httpWorkerThread-4848-0;com.sun.enterprise.admin.event.wsmgmt.TransformationRuleEvent -- server [1 Change(s), Id:2, ts:1178872051675];|ADM1041:Sent the event to instance:[com.sun.enterprise.admin.event.wsmgmt.TransformationRuleEvent -- server [1 Change(s), Id:2, ts:1178872051675]]|#]
[#|2007-05-11T09:28:00.269+0100|WARNING|sun-appserver9.1|javax.enterprise.system.stream.err|_ThreadID=13;_ThreadName=httpSSLWorkerThread-8080-0;_RequestID=89eadb09-2894-4ace-95f6-75043c1e6988;|
ERROR:  ''|#]
[#|2007-05-11T09:28:00.285+0100|WARNING|sun-appserver9.1|javax.enterprise.system.stream.err|_ThreadID=13;_ThreadName=httpSSLWorkerThread-8080-0;_RequestID=89eadb09-2894-4ace-95f6-75043c1e6988;|
com.sun.enterprise.admin.wsmgmt.transform.TransformException: javax.xml.transform.TransformerException: java.lang.NullPointerException
     at com.sun.enterprise.admin.wsmgmt.transform.FilterChain.process(FilterChain.java:238)
     at com.sun.enterprise.admin.wsmgmt.transform.TransformFilter.process(TransformFilter.java:144)
     at com.sun.enterprise.admin.wsmgmt.filter.spi.FilterRouter.applyFilters(FilterRouter.java:69)
     at com.sun.enterprise.admin.wsmgmt.agent.GlobalMessageListenerImpl.processRequest(GlobalMessageListenerImpl.java:181)
     at com.sun.enterprise.webservice.monitoring.WebServiceEngineImpl.processRequest(WebServiceEngineImpl.java:265)
     at com.sun.enterprise.webservice.monitoring.JAXWSEndpointImpl.processRequest(JAXWSEndpointImpl.java:53)
     at com.sun.enterprise.webservice.MonitoringPipe.process(MonitoringPipe.java:127)
     at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:79)
     at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:559)
     at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:518)
     at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:503)
     at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:400)
     at com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:70)
     at com.sun.xml.ws.mex.server.MetadataServerPipe.process(MetadataServerPipe.java:97)
     at com.sun.enterprise.webservice.CommonServerSecurityPipe.processRequest(CommonServerSecurityPipe.java:191)
     at com.sun.enterprise.webservice.CommonServerSecurityPipe.process(CommonServerSecurityPipe.java:113)
     at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:79)
     at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:559)
     at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:518)
     at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:503)
     at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:400)
     at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:208)
     at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:374)
     at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:175)
     at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:134)
     at com.sun.enterprise.webservice.Ejb3MessageDispatcher.handlePost(Ejb3MessageDispatcher.java:100)
     at com.sun.enterprise.webservice.Ejb3MessageDispatcher.invoke(Ejb3MessageDispatcher.java:74)
     at com.sun.enterprise.webservice.EjbWebServiceServlet.dispatchToEjbEndpoint(EjbWebServiceServlet.java:187)
     at com.sun.enterprise.webservice.EjbWebServiceServlet.service(EjbWebServiceServlet.java:116)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
     at com.sun.enterprise.web.AdHocContextValve.invoke(AdHocContextValve.java:101)
     at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
     at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
     at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:74)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:207)
     at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
     at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
     at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
     at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
     at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
     at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
     at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:249)
     at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:618)
     at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:549)
     at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:790)
     at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:326)
     at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:248)
     at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:199)
     at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:328)
     at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
     at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:93)
Caused by: javax.xml.transform.TransformerException: java.lang.NullPointerException
     at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:651)
     at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:281)
     at com.sun.enterprise.admin.wsmgmt.transform.FilterChain.process(FilterChain.java:224)
     ... 54 more
Caused by: java.lang.NullPointerException
     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1235)
     at com.sun.org.apache.xalan.internal.xsltc.trax.TrAXFilter.parse(TrAXFilter.java:105)
     at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:588)
     at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:642)
     ... 56 moreCould this be a bug or am I doing something wrong?
Cheers again,
Tony

Similar Messages

  • Return multiple values from a Web Service

    Hi,
    I'm learning JAX-WS web services and I'm wondering, how do I return multiple data like, say multiple rows from a table through a web service? I understand that I can use Holders, but those are for JAX-RPC if I'm not mistaken, and I'd like to know the alternative for JAX-WS(if there is any).
    Any help would be much appreciated.

    Debojit Sinha wrote:
    A greeting service where the client types a string(preferably a name), and the service returns "Hello, " followed by that name. I faced the error with returning objects when I tried to return the results of a query with a set of serialized JavaBeans passed into an arraylist. I don't have the complete error log with me now, but the error was generated when deploying with JDeveloper 11g, and it was something about JAXB content model error. Also, There was an error regarding javax.naming.Name saying that JAXB couldn't handle interfaces.yes, you can't return any interfaces. so, instead of returning a List, you have to return an ArrayList. if you use xjc to generate types from a schema, then it will normally generate a "wrapper" class around any collections (which will in turn hold a List).

  • Problem in fetching values from Java Web Service returning ArrayList

    Hi all,
    I am calling an External Java web Service from BPEL. That Java Web Service is returning an Arraylist.
    I am not able to assign the values returned by the Java web service to local String Variables of BPEL.
    Kindly help me...

    Hi,
    My problem has been resolved..
    I have used
    bpws:getVariableData('Invoke_1_useSSH_OutputVariable','parameters',concat('/ns7:useSSHResponseElement/ns7:result/ns8:item\[',bpws:getVariableData('count'),']'))
    where count is the local int variable which contains the index value of the arraylist i.e. which index element we want to retrieve from arraylist.
    Thanks....
    Edited by: user643533 on Sep 12, 2008 12:10 AM

  • Trying to run a JSF page whose output i am getting from a Web Service

    Hi
    I am trying to run a JSF page containing a simple button and a outputText. On clicking the button ,the outputText field is populated with a value from a web service.
    This page sometimes it runs fine else, on pressing the button nothing happens. In the message log it gives the following error:
    Mar 6, 2007 12:03:33 PM oracle.webservices.client
    WARNING: Unable to connect to URL: http://10.177.194.73:8888/TopDownContractDevelopment-Service-context-root/CreditRatingServiceSoapHttpPort due to java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: Connection timed out: connect
    07/03/06 12:03:33 error--> java.rmi.RemoteException: ; nested exception is:
         HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: Connection timed out: connect
    Can somebody help me?
    I am using port 8888. Actually in one of the demos , it is mentioned to use 8988. But using that it was giving the above error previously. But using 8888 it works sometimes , but sometimes it is not working.
    Thanks in advance.
    Regards
    Sabarish

    Hi Raymond,
    Thank you for your immediate replies :-)....
    I have two jsp pages (inputName.jsp and greeting.jsp) as I mentioned earlier in the path /WebContent/jsp
    and one index.jsp in the path jsfHello/
    The index.jsp just forwards the control to the page inputName.jsp
    the code snippet: <jsp:forward page="/jsp/inputName.jsf" />
    When I try to access the application as below I can see the corresponding pages and it corresponding navigation:
    http://localhost:8080/jsfHello/jsp/inputName.jsf ( When I input name and continue it navigated to the greeting page)
    http://localhost:8080/jsfHello/jsp/greeting.jsf
    When I try to access the application as below it doesn't work:
    http://localhost:8080/jsfHello
    http://localhost:8080/jsfHello/index.jsf
    http://localhost:8080/jsfHello/jsp/inputName.jsp
    Can you please let me know why and what is to be done to make my application work when I access the url as http://localhost:8080/jsfHello

  • Enable Web Service access for a Web service-enabled client

    Hi,
    I want to access data in Oracle CRM On Demand from a Web services-enabled client. The "Oracle Web Services On Demand Guide" suggest the Web Services Access should be granted by Customer Care representative. By default, this access is enabled for the Administrator role for new companies. However my admin account can't access web services from a web enable client.
    Can anyone please suggest me the setting/step that i need to enable Oracle On Demand Web service access from a Web services-enabled client?
    Note: I am new to oracle on demand so my query can be a silly thing.
    Thanks & Regards
    Ravish

    I was able to resolve this issue. Actually, i was trying with trial account that don't allow the OCOD web service integration.

  • Is it possible to return an array of objects from a web service?

    I have been trying to do this for a while now, and I have come to the conclusion that it may be impossible. To demonstate what I want to do I enclose a simple java file [1]. I have deployed this with Axis 2 and I enclose the responce [2], it is obciously not wat I want.
    Is it porrible to do this? If so, how?
    Thanks for any help,
    [1]
    package org.impress;
    public class SampleObject {
         public SampleElement[] noParameters(){
              SampleElement[] retArray = new SampleElement[2];
              retArray[0] = new SampleElement();
              retArray[0].name = "one";
              retArray[0].value = "alpha";
              retArray[1] = new SampleElement();
              retArray[1].name = "two";
              retArray[1].value = "beta";
              return retArray;
         public class SampleElement {
              public String name;
              public String value;
    }[2]
    <ns:noParametersResponse>
         <ns:return type="org.impress.SampleObject$SampleElement"/>
         <ns:return type="org.impress.SampleObject$SampleElement"/>
    </ns:noParametersResponse>

    Hi
    Can anybody help me with the code of how to return a resultset from a web service. i have put the resultset data's in an object array and tried to return it, but in the client side no data comes ,,, i mean it is printed as null.... and plz tell me where to specify the return type of a object in the wsdl file....
    thanks..

  • Problems invoking a method from a web service

    Am using netbeans 6.1 and my problem is when i invoke a method from a web service that has a custom class as a return type.
    When I debug the client that consumes my web service, It get Stack in this line:
    com.webservice.WebServiceInfoBean result = port.getWebServiceInfo(nameSpace, serviceName, portName, wsdlURL);
    i don't get any error on the console.
        static public void function1() {
            try { // Call Web Service Operation
                com.webservice.WebServiceMonitorService service = new com.webservice.WebServiceMonitorService();
                com.webservice.WebServiceMonitor port = service.getWebServiceMonitorPort();
                // TODO initialize WS operation arguments here
                java.lang.String nameSpace = "NameSpaceHere";
                java.lang.String serviceName = "WebServicePrueba";
                java.lang.String portName = "Soap";
                java.lang.String wsdlURL = "http://localhost/Prueba/WebServicePrueba.asmx?wsdl";
                // TODO process result here
                com.webservice.WebServiceInfoBean result = port.getWebServiceInfo(nameSpace, serviceName, portName, wsdlURL); // <--- here it stack
                System.out.println("getWebServiceInfo");
                Iterator i = result.getMethods().iterator();
                while (i.hasNext()) {
                    MethodBean method = (MethodBean) i.next();
                    System.out.print("Nombre: " + method.getname());
                    System.out.print(" Returns: " + method.getreturnType());
                    Iterator j = method.getparameters().iterator();
                    while (j.hasNext()) {
                        ParameterBean parameter = (ParameterBean) j.next();
                        System.out.print(" ParameterName: " + parameter.getname());
                        System.out.print(" ParameterType: " + parameter.gettype());
                    System.out.print("\n");
                    System.out.print(method.getfirma());
                    System.out.print("\n");
                    System.out.print("\n");
            } catch (Exception ex) {
                ex.printStackTrace();
        }Web Service side
         * Web service operation
        @WebMethod(operationName = "getWebServiceInfo")
        public WebServiceInfoBean getWebServiceInfo(@WebParam(name = "nameSpace")
        String nameSpace, @WebParam(name = "portName")
        String portName, @WebParam(name = "serviceName")
        String serviceName, @WebParam(name = "wsdlURL")
        String wsdlURL) throws Throwable {
            //TODO write your implementation code here:
            webservicemonitor instance = new webservicemonitor();
            return instance.getWebServiceInfo(nameSpace, serviceName, portName, wsdlURL);
        }I have tested my internal code from the web service side and everything works fine. The problem occurs when i invoke it from a client side. probably I did not made the right serialization form my class WebServiceInfoBean? or am missing something. here it is:
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    package com.beans;
    import java.util.ArrayList;
    * @author Tequila_Burp
    public class WebServiceInfoBean implements java.io.Serializable {
         * Holds value of property wsdlURL.
        private String wsdlURL;
         * Getter for property wsdlURL.
         * @return Value of property wsdlURL.
        public String getwsdlURL() {
            return this.wsdlURL;
         * Setter for property wsdlURL.
         * @param wsdlURL New value of property wsdlURL.
        public void setwsdlURL(String wsdlURL) {
            this.wsdlURL = wsdlURL;
         * Holds value of property namespace.
        private String namespace;
         * Getter for property namespace.
         * @return Value of property namespace.
        public String getnamespace() {
            return this.namespace;
         * Setter for property namespace.
         * @param namespace New value of property namespace.
        public void setnamespace(String namespace) {
            this.namespace = namespace;
         * Holds value of property serviceName.
        private String serviceName;
         * Getter for property serviceName.
         * @return Value of property serviceName.
        public String getserviceName() {
            return this.serviceName;
         * Setter for property serviceName.
         * @param serviceName New value of property serviceName.
        public void setserviceName(String serviceName) {
            this.serviceName = serviceName;
         * Holds value of property wsdlURL.
        private String portName;
         * Getter for property wsdlURL.
         * @return Value of property wsdlURL.
        public String getportName() {
            return this.portName;
         * Setter for property wsdlURL.
         * @param wsdlURL New value of property wsdlURL.
        public void setportName(String portName) {
            this.portName = portName;
         * Holds value of property methods.
        private ArrayList methods = new ArrayList();
         * Getter for property methods.
         * @return Value of property methods.
        public ArrayList getmethods() {
            return this.methods;
         * Setter for property methods.
         * @param methods New value of property methods.
        public void setmethods(ArrayList methods) {
            this.methods = methods;
        public MethodBean getMethod(int i) {
            return (MethodBean)methods.get(i);
    }by the way, everything has been worked on the same PC.

    Hi Paul,
    This sound familiar, but I cannot at the moment locate a reference to
    the issue. I would encourage you to seek the help of our super support
    team [1].
    Regards,
    Bruce
    [1]
    http://support.bea.com
    [email protected]
    Paul Merrigan wrote:
    >
    I'm trying to invoke a secure 8.1 web service from a 6.1 client application and keep getting rejected with the following message:
    Security Violation: User: '<anonymous>' has insufficient permission to access EJB:
    In the 6.1 client, I've established a WebServiceProxy and set the userName and password to the proper values, but I can't seem to get past the security.
    If there something special I need to do on either the 8.1 securing side or on the 6.1 accessing side to make this work?
    Any help would be GREATLY appreciated.

  • Erro while recieving a signed response from a web service

    i'm not sure whether this is the right forum to post this topic, but anyways i'm going fwd as i was not able to find a rite one, if any body knows, plz redirect me to that, anyways below is my issue.
    i'm using axis as a web service engine on my client side and getting a signed response from a web service.
    But while recieving the response im gettng the following error.
    Verification failed for URI "#id-13753285"
    org.apache.ws.security.WSSecurityException: The signature verification failed
         at org.apache.ws.security.processor.SignatureProcessor.verifyXMLSignature(SignatureProcessor.java:332)
         at org.apache.ws.security.processor.SignatureProcessor.handleToken(SignatureProcessor.java:79)
         at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:279)
         at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:201)
         at org.apache.ws.axis.security.WSDoAllReceiver.invoke(WSDoAllReceiver.java:159)
         at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
         at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
         at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
         at org.apache.axis.client.AxisClient.invoke(AxisClient.java:190)
         at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
         at org.apache.axis.client.Call.invoke(Call.java:2767)
         at org.apache.axis.client.Call.invoke(Call.java:2443)
         at org.apache.axis.client.Call.invoke(Call.java:2366)
         at org.apache.axis.client.Call.invoke(Call.java:1812)
         at com.sterlingcommerce.www.mesa.GISBindingStub.executeLightweightJDBCAdapterQuery(GISBindingStub.java:210)
         at client.MyClient.makeRequest(MyClient.java:105)
         at client.MyClient.main(MyClient.java:134)
    failed becoz of remote exception: org.apache.ws.security.WSSecurityException: The signature verification failed
    Exception in thread "main" org.apache.ws.security.WSSecurityException: The signature verification failed
         at org.apache.ws.security.processor.SignatureProcessor.verifyXMLSignature(SignatureProcessor.java:332)
         at org.apache.ws.security.processor.SignatureProcessor.handleToken(SignatureProcessor.java:79)
         at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:279)
         at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:201)
         at org.apache.ws.axis.security.WSDoAllReceiver.invoke(WSDoAllReceiver.java:159)
         at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
         at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
         at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
         at org.apache.axis.client.AxisClient.invoke(AxisClient.java:190)
         at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
         at org.apache.axis.client.Call.invoke(Call.java:2767)
         at org.apache.axis.client.Call.invoke(Call.java:2443)
         at org.apache.axis.client.Call.invoke(Call.java:2366)
         at org.apache.axis.client.Call.invoke(Call.java:1812)
         at com.sterlingcommerce.www.mesa.GISBindingStub.executeLightweightJDBCAdapterQuery(GISBindingStub.java:210)
         at client.MyClient.makeRequest(MyClient.java:105)
         at client.MyClient.main(MyClient.java:134)
    below are my hadler configurations and properties file
    <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver" >          
                        <parameter name="action" value="Signature"/>
                        <parameter name="user" value="signverf"/>
                        <parameter name="passwordCallbackClass" value="client.PWCallback"/>
                        <parameter name="passwordType" value="PasswordDigest"/>
                        <parameter name="signaturePropFile" value = "signatureVerifyCrypto.properties"/>
                        <parameter name="signatureKeyIdentifier" value="DirectReference"/>
                   </handler>properties file
    org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
    org.apache.ws.security.crypto.merlin.keystore.type=jks
    org.apache.ws.security.crypto.merlin.keystore.password=password
    org.apache.ws.security.crypto.merlin.keystore.alias=signverf
    org.apache.ws.security.crypto.merlin.alias.password=password
    org.apache.ws.security.crypto.merlin.file=certs/signverf/signverf_pubkeystore
    commands i used to generate keystore:
    keytool -import -alias signverf -file privCert4Sign.cer -keystore signverf_pubkeystore -storepass password
    keytool -list -alias signverf -keystore signverf_pubkeystore
    i tried goggling for this error,in one thread i got this is because of some issue in axis 1.4 which i'm using and if i try using axis 1.2, this will not come,
    for the time i'm not able to download axis 1.2 from any of the apache mirrors :( ,
    if some one can provide me the link,it will be really helpful.
    also if anyone as faced similar issue or can see whats going wrong here, please reply.
    also below is my soap response capture using tcpmon
    <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:Header>
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><ds:Signature Id="Signature-18290758" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:SignedInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
    <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
    <ds:Reference URI="#id-13753285" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:Transforms xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
    </ds:Transforms>
    <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
    <ds:DigestValue xmlns:ds="http://www.w3.org/2000/09/xmldsig#">jAaM4xp/2ZOch7iqyyLynojMpV0=</ds:DigestValue>
    </ds:Reference>
    </ds:SignedInfo>
    <ds:SignatureValue xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    JiOjIFgJ2qMvzJsirbjgV7AeDWfsS0Ak3xzue1nK+LXELM3tZ/h/eFyxCLZfLk+553vJbmnlU423
    8NgjgngYcYa+bB6yTovZJKB66LdQEHLpmTX4WNteLrcVOBfHyZcJCKemF2XyaF4yX03XGAIdNnFV
    1d8wZQcBgakPIrjJGAZtwo94bYBlL/MJedBP819Ecf/N6hEmafFxHD46Xapi+HdcDjQmCqxaol/I
    bQuM3ikJJ2v+46bQNKEWavdG7lIicjUsvH3xpyzZthj26nAHV6nAOEe8tybKhKLga6KDM+3eAJNq
    3s52yZTz68n7z5AijdmhMkc7ivCxELBx5TQYsw==
    </ds:SignatureValue>
    <ds:KeyInfo Id="KeyId-20631690" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <wsse:SecurityTokenReference wsu:Id="STRId-5317380" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsse:KeyIdentifier EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3">MIIDLDCCAhSgAwIBAgICBNIwDQYJKoZIhvcNAQEFBQAwTzEWMBQGA1UEAwwNcHJpdkNlcnQ0U2lnbjEMMAoGA1UECgwDYWJzMQswCQYDVQQGEwJVUzEaMBgGCSqGSIb3DQEJARYLeHl6QGFiYy5jb20wHhcNMDcwOTA0MDQzNzMxWhcNMDgwMzAyMDQzNzMxWjBPMRYwFAYDVQQDDA1wcml2Q2VydDRTaWduMQwwCgYDVQQKDANhYnMxCzAJBgNVBAYTAlVTMRowGAYJKoZIhvcNAQkBFgt4eXpAYWJjLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJSG2UR8nMAxctBlR5YSnEVeuHNFMM7t8YQX6J8GRausKPXyDT4pIfPHRaeag62K4cUhBDYBLyUmZqYTZBHpKISgYkYsXqYHoB4gif664rZvpMKw+cTpD/3WzViOeHHWfQM5/XUatLBPXzRUB78PcM9RnCEeznKUEPoWxTfl2qsR0d4CxOVzH9dHn6JCEaQQWzntH61YCw4Qm6Kq78+sLfnv7CBrg/NYewFX9JozZk7UzlmPZWCm7pp2d4UDn1KB7nLnLFxD6aMgjAikWKAU4h15ihJxu6Appc+ggAdAV/jQiaIeAtokfe2Iw1bUh8SOOR8iUa9lK0Jf6C/N9ZTnxCcCAwEAAaMSMBAwDgYDVR0PAQH/BAQDAgTwMA0GCSqGSIb3DQEBBQUAA4IBAQCKfRu1cXkwwnNZ+0brwT4iI1q/Ti/OVMWpP15Ob7bDE5rUjwpNUJXXlqKdOh7pkk1gLTiebQrMkd0ozpbi/Xdmea1xf9diCc4IApg6K9G4KACR2sLeXcKy7d4hakYqMLeaPJwBcd3V6DGiJgfP2S8Ui8rQzDpslTBM1+YaBdUVIv1/VCFO/K5I4lkPkjGDp/qDm4lXn3Mup9HG9INgklA02hPnYHWunVZm/5MZpEn4BYks+B3VqCXSAkRVD9aAuM3Tv4atblHDs3oKTV1awoVQbKkw+Eonnc/+Mex8A5sJ/8eUnQ3UPdT77U0+WcrvwFxoFP2e0J8xHW8N8b2fIr8H</wsse:KeyIdentifier></wsse:SecurityTokenReference>
    </ds:KeyInfo>
    </ds:Signature></wsse:Security></soapenv:Header>
    <soapenv:Body wsu:Id="id-13753285" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <mesa:processData xmlns:mesa="http://www.sterlingcommerce.com/mesa" 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">
    <ProcessData>
    <service>Test_Web2</service>
    <b2b-protocol>http</b2b-protocol>
    <transport-instance-id>MESAHttpServerAdapter_HttpServerAdapter_node1</transport-instance-id>
    <SyncModeBP>false</SyncModeBP>
    <http-request-uri>/soap-new</http-request-uri>
    <transport-session-id>Fri Aug 31 14:04:57 IST 2007:110</transport-session-id>
    <incomingSOAPTransportMode>http</incomingSOAPTransportMode>
    <VERIFICATION_KEY/>
    <DECRYPTION_KEY/>
    <SECURITY_TOKEN_NAME>ST1</SECURITY_TOKEN_NAME>
    <SIGNING_CERTIFICATE>blrgislin13:10.11.23.37:114bb0fb841:12328</SIGNING_CERTIFICATE>
    <SIGNING_ALGO>http://www.w3.org/2000/09/xmldsig#rsa-sha1</SIGNING_ALGO>
    <SIGNING_KEY_IDENTIFIER_TYPE>3</SIGNING_KEY_IDENTIFIER_TYPE>
    <CANONICALIZATION_ALGO>http://www.w3.org/TR/2001/REC-xml-c14n-20010315</CANONICALIZATION_ALGO>
    <SIGNATURE_ENCRYPTION_ORDER>-1</SIGNATURE_ENCRYPTION_ORDER>
    <SOAP_URI>/soap-new</SOAP_URI>
    <SOAPEnvNSPrefix>soapenv</SOAPEnvNSPrefix>
    <SOAPEnvNSURI>http://schemas.xmlsoap.org/soap/envelope/</SOAPEnvNSURI>
    <messageMode>1</messageMode>
    <query_type>SELECT</query_type>
    <result_name>result</result_name>
    <pool>mysqlPool</pool>
    <row_name>row</row_name>
    <sql>SELECT * FROM MBX_MAILBOX</sql>
    <serviceMode>1</serviceMode>
    <typeName>LightweightJDBCAdapterQuery</typeName>
    <PrimaryDocument SCIObjectID="blrgislin13:10.11.23.37:114bb0fb841:19200"/>
    <ADD_SOAP_ENVELOPING>false</ADD_SOAP_ENVELOPING>
    <INSERT_SECURITY_HEADER>false</INSERT_SECURITY_HEADER>
    </ProcessData>
    </mesa:processData>
    </soapenv:Body>
    </soapenv:Envelope>
    sorry for this long mail, but we are really stuck and need to move forward,
    looking for your help.

    Hi,
    The Service Control Manager will generate an event if a service does not respond within the defined timeout period (the default timeout period is 30000 milliseconds). You could modify the registry to increase the default time-out value for the service control
    manager.
    For more detailed information, please see:
    Event ID 7011: Service Timeout
    http://social.technet.microsoft.com/wiki/contents/articles/13765.event-id-7011-service-timeout.aspx
    The Event 12362 indicates that a destination LUN could not be located or could not be restarted. You could refer to the article below to troubleshoot the issue:
    Event ID 12362 — VSS Shadow Copy Provider Operations
    http://technet.microsoft.com/en-us/library/ee264223(v=ws.10).aspx
    Best Regards,
    Mandy
    We
    are trying to better understand customer views on social support experience, so your participation in this
    interview project would be greatly appreciated if you have time.
    Thanks for helping make community forums a great place.

  • Some data is missing while returning complex datatype from a web service

    Hi
    I am returning a complex data type from a web service. complex data type has a super class and some(not all) values from this super class are not being returned to the client. Strange part is that it giving some fields from super class and some values are not returned.
    I saw the soap response also it does not show any tag for those fields. but while creating a response i am setting some string values to those fields but i am not getting at client side.
    all the serailiastion and deseialization classes where created using ANT tasks and i have checked that all the cedec classes have been created.

    for what it's worth, the same problem was reported by one of our developers, although the string size was considerably smaller (probably less then 1 MB). According to him, soap clients generated from apache tools could connect fine and process the XML records. JDev hung. We simply changed our use case to return smaller results sets, but perhaps you could also generate your clients with WSDL2Java rather then JDev (if it is a truly a bug in JDev SOAP)? Can you add record parameters to the payload, in order to limit the results and scroll between remaining rows?

  • Workshop 9.2 - Web Service Test Client - java.util.NoSuchElementException

    I've found an issue with the Web Services Test Client while developing a web service application in the Weblogic Workshop 9.2 tool. The same schema / code in Workshop 8.1 SP4 works okay in its version of the test client.
    The error seems to manifest itself, when I add the "addresses" element to the "locations" element.
    The error displayed in the weblogic service console is
    <BLOCKQUOTE>
    java.lang.RuntimeException: java.util.NoSuchElementException
    at weblogic.testclient.ConnectionState.createWsdl(ConnectionState.java:63)
    at Controller.refreshWsdl(Controller.java:304)
    at Controller.begin(Controller.java:173)
    at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
            at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
            at org.apache.beehive.netui.pageflow.FlowController.invokeActionMethod(FlowController.java:878)
            at org.apache.beehive.netui.pageflow.FlowController.getActionMethodForward(FlowController.java:808)
            at org.apache.beehive.netui.pageflow.FlowController.internalExecute(FlowController.java:477)
            at org.apache.beehive.netui.pageflow.PageFlowController.internalExecute(PageFlowController.java:305)
            at org.apache.beehive.netui.pageflow.FlowController.execute(FlowController.java:335)
            at org.apache.beehive.netui.pageflow.internal.FlowControllerAction.execute(FlowControllerAction.java:51)
            at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
            at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.access$201(PageFlowRequestProcessor.java:95)
            at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor$ActionRunner.execute(PageFlowRequestProcessor.java:2042)
            at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors.wrapAction(ActionInterceptors.java:90)
            at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processActionPerform(PageFlowRequestProcessor.java:2114)
            at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
            at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processInternal(PageFlowRequestProcessor.java:554)
            at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:851)
            at org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:630)
            at org.apache.beehive.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:157)
            at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
            at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
            at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
            at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
            at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
            at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3211)
    Caused by: java.util.NoSuchElementException
            at java.util.AbstractList$Itr.next(AbstractList.java:427)
            at weblogic.testclient.RequestTemplate.addSoapForParameter(RequestTemplate.java:341)
            at weblogic.testclient.RequestTemplate.addSoapForParameter(RequestTemplate.java:334)
            at weblogic.testclient.RequestTemplate.addSoapForParameter(RequestTemplate.java:334)
            at weblogic.testclient.RequestTemplate.addSoapForParameter(RequestTemplate.java:334)
            at weblogic.testclient.RequestTemplate.addSoapForParameter(RequestTemplate.java:334)
            at weblogic.testclient.RequestTemplate.addSoapForParameter(RequestTemplate.java:334)
            at weblogic.testclient.RequestTemplate.addSoapForParameter(RequestTemplate.java:334)
            at weblogic.testclient.RequestTemplate.addSoapForParameter(RequestTemplate.java:334)
            at weblogic.testclient.RequestTemplate.addSoapForParameter(RequestTemplate.java:334)
            at weblogic.testclient.RequestTemplate.createMessageBody(RequestTemplate.java:220)
            at weblogic.testclient.RequestTemplate.buildRequest(RequestTemplate.java:169)
            at weblogic.testclient.RequestTemplate.createRequestTemplate(RequestTemplate.java:103)
            at weblogic.testclient.RequestTemplate.<init>(RequestTemplate.java:85)
            at weblogic.testclient.WebServiceOperation.<init>(WebServiceOperation.java:120)
            at weblogic.testclient.WsdlOperationParser.createOperation(WsdlOperationParser.java:115)
            at weblogic.testclient.WebService.createOperation(WebService.java:242)
            at weblogic.testclient.WebService.<init>(WebService.java:86)
            at weblogic.testclient.Wsdl.parseWsdl(Wsdl.java:127)
            at weblogic.testclient.Wsdl.<init>(Wsdl.java:59)
            at weblogic.testclient.ConnectionState.createWsdlFromHttpUrl(ConnectionState.java:113)
            at weblogic.testclient.ConnectionState.createWsdl(ConnectionState.java:54)
            at Controller.refreshWsdl(Controller.java:304)
            at Controller.begin(Controller.java:173)
            at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
            at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
            at org.apache.beehive.netui.pageflow.FlowController.invokeActionMethod(FlowController.java:878)
            at org.apache.beehive.netui.pageflow.FlowController.getActionMethodForward(FlowController.java:808)
            at org.apache.beehive.netui.pageflow.FlowController.internalExecute(FlowController.java:477)
    </BLOCKQUOTE>
    The code in the Web Service control is...
    <BLOCKQUOTE>
    package services;
    import javax.jws.WebMethod;
    import javax.jws.WebService;
    import weblogic.jws.WLHttpTransport;
    import au.com.suncorp.services.payment.schema.x0.RequestIdDocument;
    import au.com.suncorp.services.payment.schema.x0.VendorDocument;
    @WebService(targetNamespace="http://suncorp.com.au/services/payment/wsdl/0")
    @WLHttpTransport(serviceUri="services/PaymentService")
    public class Payment {
         @WebMethod
         public RequestIdDocument setupVendor(VendorDocument request) {
              System.out.println(request.xmlText());
              RequestIdDocument result = RequestIdDocument.Factory.newInstance();
              RequestIdDocument.RequestId response = result.addNewRequestId();
              response.setCorrelationId("CorrelationId-" + request.getVendor().getName());
              return result;
    </BLOCKQUOTE>
    The XSD schema is as follows....
    <BLOCKQUOTE>
    <?xml version="1.0" encoding="UTF-8"?>
    <schema xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://suncorp.com.au/services/payment/schema/0"
    xmlns:tns="http://suncorp.com.au/services/payment/schema/0">
    <!-- ***************************************************************** -->
    <simpleType name="correlationIdType">
    <annotation>
    <documentation>
    The CorrelationId field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="estTimeIntervalType">
    <annotation>
    <documentation>
    The Estimated Time Interval field.
    </documentation>
    </annotation>
    <restriction base="integer"></restriction>
    </simpleType>
    <simpleType name="vendorIdType">
    <annotation>
    <documentation>
    The Vendor Id field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="nameType">
    <annotation>
    <documentation>
    The Vendor Name field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="persistenceType">
    <annotation>
    <documentation>
    The Persistence field.
    </documentation>
    </annotation>
    <restriction base="boolean"></restriction>
    </simpleType>
    <simpleType name="ownerType">
    <annotation>
    <documentation>
    The Owner field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="sourceReferenceType">
    <annotation>
    <documentation>
    The vendor Source Reference field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="abnType">
    <annotation>
    <documentation>
    The vendor ABN field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="countryType">
    <annotation>
    <documentation>
    The Country field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="stateType">
    <annotation>
    <documentation>
    The State field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="cityType">
    <annotation>
    <documentation>
    The City field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="postcodeType">
    <annotation>
    <documentation>
    The Postcode field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="gstRegisteredType">
    <annotation>
    <documentation>
    The GST Registered field.
    </documentation>
    </annotation>
    <restriction base="boolean"></restriction>
    </simpleType>
    <simpleType name="withHoldingType">
    <annotation>
    <documentation>
    The WithHolding field.
    </documentation>
    </annotation>
    <restriction base="boolean"></restriction>
    </simpleType>
    <simpleType name="vendorClassType">
    <annotation>
    <documentation>
    The Vendor Class field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="statusType">
    <annotation>
    <documentation>The Status field.</documentation>
    </annotation>
    <restriction base="string">
    <enumeration value="ACTIVE">
    <annotation>
    <documentation>an enumerated value.</documentation>
    </annotation>
    </enumeration>
    <enumeration value="INACTIVE">
    <annotation>
    <documentation>an enumerated value.</documentation>
    </annotation>
    </enumeration>
    </restriction>
    </simpleType>
    <simpleType name="locationIdType">
    <annotation>
    <documentation>
    The Location Id field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="effectiveDateType">
    <annotation>
    <documentation>
    The Effective Date field.
    </documentation>
    </annotation>
    <restriction base="dateTime"></restriction>
    </simpleType>
    <simpleType name="addressIdType">
    <annotation>
    <documentation>
    The AddressId field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="addressType">
    <annotation>
    <documentation>
    The Address field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="contactIdType">
    <annotation>
    <documentation>
    The ContactId field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="contactMethodType">
    <annotation>
    <documentation>
    The Address field.
    </documentation>
    </annotation>
    <restriction base="string">
    <enumeration value="FAX">
    <annotation>
    <documentation>an enumerated value.</documentation>
    </annotation>
    </enumeration>
    <enumeration value="PHONE">
    <annotation>
    <documentation>an enumerated value.</documentation>
    </annotation>
    </enumeration>
    <enumeration value="EMAIL">
    <annotation>
    <documentation>an enumerated value.</documentation>
    </annotation>
    </enumeration>
    </restriction>
    </simpleType>
    <simpleType name="dispatchMethodType">
    <annotation>
    <documentation>
    The Dispatch Method field.
    </documentation>
    </annotation>
    <restriction base="string">
    <enumeration value="EFT">
    <annotation>
    <documentation>an enumerated value.</documentation>
    </annotation>
    </enumeration>
    <enumeration value="FAX">
    <annotation>
    <documentation>an enumerated value.</documentation>
    </annotation>
    </enumeration>
    <enumeration value="EMAIL">
    <annotation>
    <documentation>an enumerated value.</documentation>
    </annotation>
    </enumeration>
    </restriction>
    </simpleType>
    <simpleType name="currencyType">
    <annotation>
    <documentation>
    The Currency field.
    </documentation>
    </annotation>
    <restriction base="boolean"></restriction>
    </simpleType>
    <simpleType name="payGroupType">
    <annotation>
    <documentation>
    The Pay Group field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="payHoldType">
    <annotation>
    <documentation>
    The Pay Hold field.
    </documentation>
    </annotation>
    <restriction base="boolean"></restriction>
    </simpleType>
    <simpleType name="freightTermsType">
    <annotation>
    <documentation>
    The Freight Terms field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="payHandlingType">
    <annotation>
    <documentation>
    The Pay Handling field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="delayDaysType">
    <annotation>
    <documentation>
    The Delay Days field.
    </documentation>
    </annotation>
    <restriction base="integer"></restriction>
    </simpleType>
    <simpleType name="payFromBankType">
    <annotation>
    <documentation>
    The Pay From Bank field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="paymentInstructionsType">
    <annotation>
    <documentation>
    The Payment Instructions field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="paymentTermsType">
    <annotation>
    <documentation>
    The Payment Terms field.
    </documentation>
    </annotation>
    <restriction base="string">
    <enumeration value="COD">
    <annotation>
    <documentation>an enumerated value.</documentation>
    </annotation>
    </enumeration>
    <enumeration value="SEVEN_DAYS">
    <annotation>
    <documentation>an enumerated value.</documentation>
    </annotation>
    </enumeration>
    <enumeration value="FOURTEEN_DAYS">
    <annotation>
    <documentation>an enumerated value.</documentation>
    </annotation>
    </enumeration>
    <enumeration value="TWENTYONE_DAYS">
    <annotation>
    <documentation>an enumerated value.</documentation>
    </annotation>
    </enumeration>
    <enumeration value="THIRTY_DAYS">
    <annotation>
    <documentation>an enumerated value.</documentation>
    </annotation>
    </enumeration>
    </restriction>
    </simpleType>
    <simpleType name="paymentMethodType">
    <annotation>
    <documentation>
    The Payment Method field.
    </documentation>
    </annotation>
    <restriction base="string">
    <enumeration value="EFT">
    <annotation>
    <documentation>an enumerated value.</documentation>
    </annotation>
    </enumeration>
    <enumeration value="CHEQUE">
    <annotation>
    <documentation>an enumerated value.</documentation>
    </annotation>
    </enumeration>
    </restriction>
    </simpleType>
    <simpleType name="payBankIdType">
    <annotation>
    <documentation>
    The PayBankId field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="descriptionType">
    <annotation>
    <documentation>
    The Pay Bank Description field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="bankIdType">
    <annotation>
    <documentation>
    The BankId field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="branchIdType">
    <annotation>
    <documentation>
    The BranchId field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <simpleType name="bankAccountType">
    <annotation>
    <documentation>
    The BankAccount field.
    </documentation>
    </annotation>
    <restriction base="string"></restriction>
    </simpleType>
    <!-- ***************************************************************** -->
    <complexType name="payBankDetailsType">
    <sequence>
    <element name="payBankId" type="tns:payBankIdType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="description" type="tns:descriptionType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="bankId" type="tns:bankIdType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="branchId" type="tns:branchIdType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="bankAccount" type="tns:bankAccountType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="effectiveDate" type="tns:effectiveDateType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    </sequence>
    </complexType>
    <complexType name="paymentDetailsType">
    <sequence>
    <element name="paymentTerms" type="tns:paymentTermsType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="paymentMethod" type="tns:paymentMethodType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="dispatchMethod" type="tns:dispatchMethodType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="payGroup" type="tns:payGroupType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="currency" type="tns:currencyType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="payHold" type="tns:payHoldType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="freightTerms" type="tns:freightTermsType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="payHandling" type="tns:payHandlingType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="delayDays" type="tns:delayDaysType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="payFromBank" type="tns:payFromBankType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="paymentInstructions" type="tns:paymentInstructionsType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="bankDetails" type="tns:payBankDetailsType" maxOccurs="1" minOccurs="1"></element>
    </sequence>
    </complexType>
    <complexType name="contactDetailsType">
    <sequence>
    <element name="contactId" type="tns:contactIdType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="effectiveDate" type="tns:effectiveDateType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="name" type="tns:nameType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="contactMethod" type="tns:contactMethodType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="dispatchMethod" type="tns:dispatchMethodType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="status" type="tns:statusType" maxOccurs="1" minOccurs="1"></element>
    </sequence>
    </complexType>
    <complexType name="arrayOfContactDetails">
    <sequence>
    <element name="contact" type="tns:contactDetailsType" maxOccurs="unbounded" minOccurs="0"></element>
    </sequence>
    </complexType>
    <complexType name="addressDetailsType">
    <sequence>
    <element name="addressId" type="tns:addressIdType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="effectiveDate" type="tns:effectiveDateType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="name" type="tns:nameType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="address" type="tns:addressType" maxOccurs="1" minOccurs="1"></element>
    <element name="postcode" type="tns:postcodeType" maxOccurs="1" minOccurs="1"></element>
    <element name="city" type="tns:cityType" maxOccurs="1" minOccurs="1"></element>
    <element name="state" type="tns:stateType" maxOccurs="1" minOccurs="1"></element>
    <element name="country" type="tns:countryType" maxOccurs="1" minOccurs="1"></element>
    <element name="contacts" type="tns:arrayOfContactDetails" maxOccurs="1" minOccurs="0"></element>
    </sequence>
    </complexType>
    <complexType name="arrayOfAddressDetails">
    <sequence>
    <element name="address" type="tns:addressDetailsType" maxOccurs="unbounded" minOccurs="0"></element>
    </sequence>
    </complexType>
    <complexType name="locationDetailsType">
    <sequence>
    <element name="locationId" type="tns:locationIdType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="effectiveDate" type="tns:effectiveDateType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="orderingVendorId" type="tns:vendorIdType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="invoicingVendorId" type="tns:vendorIdType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="remittingVendorId" type="tns:vendorIdType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="returningVendorId" type="tns:vendorIdType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="status" type="tns:statusType" maxOccurs="1" minOccurs="1"></element>
    <element name="paymentDetails" type="tns:paymentDetailsType" maxOccurs="1" minOccurs="1"></element>
    <element name="addresses" type="tns:arrayOfAddressDetails" maxOccurs="1" minOccurs="0"></element>
    </sequence>
    </complexType>
    <complexType name="arrayOfLocationDetails">
    <sequence>
    <element name="location" type="tns:locationDetailsType" maxOccurs="unbounded" minOccurs="0"></element>
    </sequence>
    </complexType>
    <!-- ***************************************************************** -->
    <element name="Vendor">
    <complexType mixed="true">
    <annotation>
    <documentation>
    The Vendor request object.
    </documentation>
    </annotation>
    <sequence>
    <element name="vendorId" type="tns:vendorIdType" maxOccurs="1" minOccurs="1"></element>
    <element name="name" type="tns:nameType" maxOccurs="1" minOccurs="1"></element>
    <element name="persistence" type="tns:persistenceType" maxOccurs="1" minOccurs="1" default="true"></element>
    <element name="owner" type="tns:ownerType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="sourceReference" type="tns:sourceReferenceType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="corporateVendorId" type="tns:vendorIdType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="abn" type="tns:abnType" maxOccurs="1" minOccurs="0" nillable="true"></element>
    <element name="country" type="tns:countryType" maxOccurs="1" minOccurs="1" default="AUS"></element>
    <element name="gstRegistered" type="tns:gstRegisteredType" maxOccurs="1" minOccurs="0" nillable="true" default="true"></element>
    <element name="withHolding" type="tns:withHoldingType" maxOccurs="1" minOccurs="0" nillable="true" default="false"></element>
    <element name="status" type="tns:statusType" maxOccurs="1" minOccurs="1" default="ACTIVE"></element>
    <element name="vendorClass" type="tns:vendorClassType" maxOccurs="1" minOccurs="1"></element>
    <element name="locations" type="tns:arrayOfLocationDetails" maxOccurs="1" minOccurs="0"></element>
    </sequence>
    </complexType>
    </element>
    <element name="RequestId">
    <complexType mixed="true">
    <annotation>
    <documentation>The typical response object for requests.
    </documentation>
    </annotation>
    <sequence>
    <element name="correlationId" type="tns:correlationIdType" maxOccurs="1" minOccurs="1"></element>
    <element name="estTimeInterval" type="tns:estTimeIntervalType" maxOccurs="1" minOccurs="0" nillable="true" default="24"></element>
    </sequence>
    </complexType>
    </element>
    </schema>
    </BLOCKQUOTE>

    Hi Paul
    I believe there is some issue with the TestClient.
    Instead to test, can you please try this?
    1) Right click on Payment.java and choose Webservices -> generate wsdl
    2) Right click on the wsdl and choose Webservices -> Test with WebServices Explorer.
    3) Click on setVendor method
    4) Enter the request parameters
    Sample one:
    <ns:Vendor xmlns="http://www.openuri.org/" xmlns:ns="http://suncorp.com.au/services/payment/schema/0">
    <vendorId xmlns="">Vendor Id</vendorId>
    <name xmlns="">My correlation Id</name>
    <persistence xmlns="">false</persistence>
    <country xmlns="">USA</country>
    <status xmlns="">ACTIVE</status>
    <vendorClass xmlns="">VendorClass</vendorClass>
    </ns:Vendor>
    5) Hit the button 'Go'. The entire soap response will be displayed in the bottom.
    I have tested this and it works fine.
    Output I got:
    <m:setupVendorResponse xmlns:m="http://suncorp.com.au/services/payment/wsdl/0">
    <RequestId xmlns="http://suncorp.com.au/services/payment/schema/0">
    <correlationId>CorrelationId-My correlation Id</correlationId>
    </RequestId>
    </m:setupVendorResponse>
    Thanks,
    Vimala

  • Dynamic pagination using inputs from a Web Service data control

    I am in process of creating a pagination UI component , much similiar to the one used in Oracle forums eg: Pages: 100 [1 2 3 4 5 | Next ]
    I am making use of a Web Service to get the following details for my search results :
    a) Number of search result rows (100) ,
    b) total number of rows to be shown on one page (5)
    c) Total number of pages
    I am wondering how to create the pagination UI control in my ADF Faces page and How can I bind the web service data control to the pagination component for a simple dynamic navigation
    Please advice. I am new to ADF development, so looking inputs for approach to the above elucidated problem (Code not required)

    Yes I am using <af:commandLink > component
    <af:forEach
    var="list" items="#{NavBean.list}">
    <af:spacer width="5" height="10" id="s1"/>
    <af:panelGroupLayout id="pgl2" layout="horizontal"
    halign="center"
    inlineStyle="#{list.found ? 'background-color:#aeccd8;' : 'background-color:white;'} text-align:center; width:15px; ">
    <af:commandLink text="#{list.character}" id="cl1"
    partialSubmit="true"
    disabled="#{list.found ? false : true}"
    actionListener="#{NavBean.onIndexSelected}">
    <f:attribute name="indxKey" value="#{list.character}"/>
    </af:commandLink>
    </af:panelGroupLayout>
    </af:forEach>
    I have created a NavBean managed bean with some methods and foll set of instance variable:
    List<IndexCharacterObject> list = null;
    int startRow;
    int endRow;
    int pageNumber;
    int numPages;
    int totalRows;
    I want these variables in the Managed bean class to be automatically populated from the Web Service data control .. Not sure how to go about binding these values ?

  • Need help Take out the null values from the ResultSet and Create a XML file

    hi,
    I wrote something which connects to Database and gets the ResultSet. From that ResultSet I am creating
    a XML file. IN my program these are the main two classes Frame1 and ResultSetToXML. ResultSetToXML which
    takes ResultSet & Boolean value in its constructor. I am passing the ResultSet and Boolean value
    from Frame1 class. I am passing the boolean value to get the null values from the ResultSet and then add those
    null values to XML File. When i run the program it works alright and adds the null and not null values to
    the file. But when i pass the boolean value to take out the null values it would not take it out and adds
    the null and not null values.
    Please look at the code i am posing. I am showing step by step where its not adding the null values.
    Any help is always appreciated.
    Thanks in advance.
    ============================================================================
    Frame1 Class
    ============
    public class Frame1 extends JFrame{
    private JPanel contentPane;
    private XQuery xQuery1 = new XQuery();
    private XYLayout xYLayout1 = new XYLayout();
    public Document doc;
    private JButton jButton2 = new JButton();
    private Connection con;
    private Statement stmt;
    private ResultSetToXML rstx;
    //Construct the frame
    public Frame1() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
    jbInit();
    catch(Exception e) {
    e.printStackTrace();
    //Component initialization
    private void jbInit() throws Exception {
    //setIconImage(Toolkit.getDefaultToolkit().createImage(Frame1.class.getResource("[Your Icon]")));
    contentPane = (JPanel) this.getContentPane();
    xQuery1.setSql("");
    xQuery1.setUrl("jdbc:odbc:SCANODBC");
    xQuery1.setUserName("SYSDBA");
    xQuery1.setPassword("masterkey");
    xQuery1.setDriver("sun.jdbc.odbc.JdbcOdbcDriver");
    contentPane.setLayout(xYLayout1);
    this.setSize(new Dimension(400, 300));
    this.setTitle("Frame Title");
    xQuery1.setSql("Select * from Pinfo where pid=2 or pid=4");
    jButton2.setText("Get XML from DB");
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    catch(java.lang.ClassNotFoundException ex) {
    System.err.print("ClassNotFoundException: ");
    System.err.println(ex.getMessage());
    try {
    con = DriverManager.getConnection("jdbc:odbc:SCANODBC","SYSDBA", "masterkey");
    stmt = con.createStatement();
    catch(SQLException ex) {
    System.err.println("SQLException: " + ex.getMessage());
    jButton2.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(ActionEvent e) {
    jButton2_actionPerformed(e);
    contentPane.add(jButton2, new XYConstraints(126, 113, -1, -1));
    //Overridden so we can exit when window is closed
    protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
    System.exit(0);
    void jButton2_actionPerformed(ActionEvent e) {
    try{
    OutputStream out;
    XMLOutputter outputter;
    Element root;
    org.jdom.Document doc;
    root = new Element("PINFO");
    String query = "SELECT * FROM PINFO WHERE PID=2 OR PID=4";
    ResultSet rs = stmt.executeQuery(query);
    /*===========This is where i am passing the ResultSet and boolean=======
    ===========value to either add the null or not null values in the file======*/
    rstx = new ResultSetToXML(rs,true);
    } //end of try
    catch(SQLException ex) {
    System.err.println("SQLException: " + ex.getMessage());
    ======================================================================================
    ResultSetToXML class
    ====================
    public class ResultSetToXML {
    private OutputStream out;
    private Element root;
    private XMLOutputter outputter;
    private Document doc;
    // Constructor
    public ResultSetToXML(ResultSet rs, boolean checkifnull){
    try{
    String tagname="";
    String tagvalue="";
    root = new Element("pinfo");
    while (rs.next()){
    Element users = new Element("Record");
    for(int i=1;i<=rs.getMetaData().getColumnCount(); ++i){
    tagname= rs.getMetaData().getColumnName(i);
    tagvalue=rs.getString(i);
    System.out.println(tagname);
    System.out.println(tagvalue);
    /*============if the boolean value is false it adds the null and not
    null value to the file =====================*/
    /*============else it checks if the value is null or the length is
    less than 0 and does the else clause in the if(checkifnull)===*/
    if(checkifnull){ 
    if((tagvalue == null) || tagvalue.length() < 0 ){
    users.addContent((new Element(tagname).setText(tagvalue)));
    else{
    users.addContent((new Element(tagname).setText(tagvalue)));
    else{
    users.addContent((new Element(tagname).setText(tagvalue)));
    root.addContent(users);
    out=new FileOutputStream("c:/XMLFile.xml");
    doc = new Document(root);
    outputter = new XMLOutputter();
    outputter.output(doc,out);
    catch(IOException ioe){
    System.out.println(ioe);
    catch(SQLException sqle){

    Can someone please help me with this problem
    Thanks.

  • Null values from DB2 cause problems

    Hi,
    I have another problem with database link to DB2 using IBM iSeries Access for Linux on 64 bit OEL5 with Oracle Database gateway and unixODBC 2.2.14.
    DB link works. However, null values from DB2 cause problems. Date columns that are null on db2 return a date '30.11.0002', and character columns that are null return an error ORA-28528: Heterogeneous Services datatype conversion error.
    isql returns correct results.
    How can i fix this? Perhaps set some parameters for data conversion on the gateway?
    Thank you.

    If the driver is not fully ODBC level 3 compliant and misses functions, we're lost. But sometimes the drivers are ODBC level 3 compliant but miss the correct 64bit implementation. In those cases we can tell the gateway to use the 32bit ODBC level 3 standard by setting in the gateway init file:
    HS_FDS_SQLLEN_INTERPRETATION=32

  • How to post null values from h:inputText?

    Hello,
    I have a form made of h:inputText fields that map to an entity class as the backing bean. Whenever I post the form from a web page, all the fields that I did not fill out and that are mapped to String fields in the entity class are set to "" (empty string) instead of null.
    However, I would like to post null values to my entity, because that would indicate that the user did not fill out the field. In other contexts (outside of the web app) it is possible to set the fields to empty strings, but from the web app it should always be null. How can I get JSF to do this correctly?
    Also, when reading entitys with null values from the database, these are converted to empty h:inputText fields, so this direction works as expected.
    Ulrich

    I haven't seen a solution for this as far.
    This is how I do it:
    public void action() {
        if (isEmpty(inputValue)) {
            // do your thing
        } else {
            // do your thing
    public static boolean isEmpty(Object value) {
        if (value == null) {
            return true;
        if (value instanceof String && ((String) value).trim().length() == 0) {
            return true;
        if (value instanceof Collection && ((Collection) value).size() == 0) {
            return true;
        // And go so on .. make it an utility method.
        return false;
    }

  • Web service proxy client with client cert cause SSLSessionNotFoundErr

    Hi,
    I tried to run web service proxy client with certification from JDeveloper 10.1.3.0.4 to call PKI enabled web service got folllowing error:
    WARNING: Unable to connect to URL: due to java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: javax.net.ssl.SSLException: SSL handshake failed: SSLSessionNotFoundErr
    Web service deployed on OAS

    Hi,
    i am trying to invoke from JDeveloper (10.1.3) a CRM On Demand's Web Service and I hava the same problem:
    ADVERTENCIA: Unable to connect to URL: https://secure-ausomxgfa.crmondemand.com/Services/Integration due to java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: javax.net.ssl.SSLException: SSL handshake failed: SSLSessionNotFoundErr
    java.rmi.RemoteException: ; nested exception is:
         HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: javax.net.ssl.SSLException: SSL handshake failed: SSLSessionNotFoundErr
         at testerlast.runtime.Contact_Stub.contactInsert(Contact_Stub.java:96)
         at testerlast.ContactClient.contactInsert(ContactClient.java:88)
         at testerlast.ContactClient.main(ContactClient.java:69)
    Caused by: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: javax.net.ssl.SSLException: SSL handshake failed: SSLSessionNotFoundErr
         at oracle.j2ee.ws.common.util.exception.JAXRPCExceptionBase.<init>(JAXRPCExceptionBase.java:93)
         at oracle.j2ee.ws.common.util.exception.JAXRPCExceptionBase.<init>(JAXRPCExceptionBase.java:89)
         at oracle.j2ee.ws.client.ClientTransportException.<init>(ClientTransportException.java:33)
         at oracle.j2ee.ws.client.http.HttpClientTransport.invokeImpl(HttpClientTransport.java:144)
         at oracle.j2ee.ws.client.http.HttpClientTransport.invoke(HttpClientTransport.java:121)
         at oracle.j2ee.ws.client.StreamingSender._sendImpl(StreamingSender.java:169)
         at oracle.j2ee.ws.client.StreamingSender._send(StreamingSender.java:111)
         at testerlast.runtime.Contact_Stub.contactInsert(Contact_Stub.java:80)
         ... 2 more
    To do the invocation I have done a proxy to consume this Web Service, with the follow main:
    public static void main(String[] args) {
    try {
    testerlast.ContactClient myPort = new testerlast.ContactClient();
    System.out.println("calling " + myPort.getEndpoint());
    myPort.setUsername(nameUser);
    myPort.setPassword(password);
    ListOfContactData llista = new ListOfContactData();
    ContactData[] contacts=new ContactData[2];
    ContactData contact=new ContactData();
    ContactInsert_Input input=new ContactInsert_Input();
    // Login WS HTTPS
    String idSesion=connexioWS_CRM.logon(URL,nameUser,password);
    // Add contact
    for (int i = 0; i < contacts.length; i++) {
    contact.setId("ProvaWSCRM"+i);
    contact.setContactFirstName("JDeveloper"+i);
    contact.setContactLastName("prove"+i);
    contact.setCellularPhone("77777777"+i);
    contact.setDescription("Add contact with Id:"+contact.getId());
    contacts=contact;
    System.out.println("Id:"+contacts[i].getId()+" firstName:"+contacts[i].getContactFirstName()+" lastName:"+contacts[i].getContactLastName());
    llista.setContact(contacts);
    input.setListOfContact(llista);
    input.setEcho("off");
    System.out.println("Pwd:"+myPort.getPassword()+" Port:"+myPort._port+" endpoint:"+myPort.getEndpoint()+" user:"+myPort.getUsername());
    myPort.contactInsert(llista,"LIC","Broadset","OFF");
    // Logout en WS (HTTPS)
    connexioWS_CRM.logoff(URL, idSesion);
    } catch (Exception ex) {
    ex.printStackTrace();
    What's wrong? Any idea?
    Thank you
    Edited by: user12085357 on 31-oct-2009 10:39

Maybe you are looking for