WLS 8.1 JAX-RPC stubs and SSL

I am part of an industry effort to assess WS interop. We have created a common
WSDL that will be implemented in WAS, .NET and WLS 8.1. As part of this effort,
we are also trying to use two-way SSL authentication. However, I have not found
a way to configure WLS 8.1 JAX-RPC Stubs (generated using clientgen utilities)
to present the client certificates. I have a tried a couple of approaches but
neither of them works with the stubs.
First, I tried using the SSLAdapter (as explained in the "Programming Web Services")
documentation. Unfortunately, the service that I am trying to invoke has only
http binding and trying to invoke it using the SSLAdapter throws an exception
complaining that SSL can't be used on non-https binding.
I tried to try another approach. In this, I tried to invoke https: URL for the
web service instead of using the Adapter. However, in this case, I am getting
a peer certificate not presented exception. Everything that I have checked in
adding a client private key and trusted certificates utilize SSLSocketFactory
(& SSLContext) or HttpsURLConnection objects.
At this point, I have ran out of ideas on how to add SSL to the generated client
stubs to tell the generated StubImpl or ServiceImpl implementations to use a different
SocketFactory or connection. There may be some other global class or property
to set these things up, but I am not aware of those. The server side SSL configuration
seems to working fine, as the requests with SSL configuration of "Request Client
certificate but don't enforce it' seems to work fine.
Any responses and suggestions are greatly appreciated.
Thanks
Raj

Did you check out :
http://webservice.bea.com/
There is a 2 way SSL example here:
http://webservice.bea.com/SSL2way.zip
HTHs.
http://manojc.com
"Seshadri Rajagopal" <[email protected]> wrote in message
news:3ec24d41$[email protected]..
>
I am part of an industry effort to assess WS interop. We have created acommon
WSDL that will be implemented in WAS, .NET and WLS 8.1. As part of thiseffort,
we are also trying to use two-way SSL authentication. However, I have notfound
a way to configure WLS 8.1 JAX-RPC Stubs (generated using clientgenutilities)
to present the client certificates. I have a tried a couple of approachesbut
neither of them works with the stubs.
First, I tried using the SSLAdapter (as explained in the "Programming WebServices")
documentation. Unfortunately, the service that I am trying to invoke hasonly
http binding and trying to invoke it using the SSLAdapter throws anexception
complaining that SSL can't be used on non-https binding.
I tried to try another approach. In this, I tried to invoke https: URL forthe
web service instead of using the Adapter. However, in this case, I amgetting
a peer certificate not presented exception. Everything that I have checkedin
adding a client private key and trusted certificates utilizeSSLSocketFactory
(& SSLContext) or HttpsURLConnection objects.
At this point, I have ran out of ideas on how to add SSL to the generatedclient
stubs to tell the generated StubImpl or ServiceImpl implementations to usea different
SocketFactory or connection. There may be some other global class orproperty
to set these things up, but I am not aware of those. The server side SSLconfiguration
seems to working fine, as the requests with SSL configuration of "RequestClient
certificate but don't enforce it' seems to work fine.
Any responses and suggestions are greatly appreciated.
Thanks
Raj

Similar Messages

  • Intercepting SOAP XML message in JAX-RPC Handler and calling a diff method

    Is it possible to intercept the SOAP XML message in the JAX-RPC handler and avoid the serialization and deserialization (OR avoid XML data binding)
    Here is a more detail question
    My web service has two methods
    1. One Method which accepts Java Object (this object is mapped with a Schema
    Complex Type Element in my WSDL file)
    2. Second method which accept simple String type.
    I want my web service client to send java object (using the first method), so that the Input gets validate in the WSDL itself (before it hits the actual web service) but once the request gets validated i want to pass that converted SOAP XML String (on the Server side using JAX-RPC handler) to the Second method.

    The answer to this is that the WSDL had
    elementFormDefault="qualified"
    in the schema.
    Changing to unqualified resulted in the desired output.
    Note: The service was changed to handle both cases.

  • JAX-RPC ArrayLists and Jave Beans

    Can any one tell me if JAX-RPC supports an ArrayList of JavaBeans

    In my experience, Apache Axis is capable of serializing and deserializing any java.util.Collection instance, provided it can serialize and deserialize the objects held by the collection. This means that a List populated with beans should cause no problems.
    A word of caution though: XML serialization of objects is nowhere near as fast as the 'usual' Java serialization. This means that -if you're sending or receiving large amounts of beans per call- you might consider sending and receiving the List as attachment (ie: binary). I realize this defeats interoperability for the related web service methods, but having your users wait dozens of seconds on responses is rarely a viable alternative.

  • JAX-RPC, DII and Complex Types

    I am currently in the middle of a project at University on Web Services. I am trying to create a client which uses Dynamic Interface Invocation(DII) to obtain information from a web services server. Here is where it gets very interesting. I realize with the basic types such as String, float integer etc. it works fine but as long as I want to use complex types I am having some problems. Is there anyone out there who have are currently using DII with complex types.

    Hello.
    I have develop a small web service using jwsdp 1.4 using jaxrpc (static stub)
    Sever is working fine but when I try to connect client with it. I get this message
    prepare:
    generate-client:
    edit-config:
    unedit-config:
    compile-client:
    run-client:
    [java] java.rmi.RemoteException: HTTP-Transportfehler: java.net.MalformedUR
    LException: no protocol: REPLACE_WITH_ACTUAL_URL; nested exception is:
    [java] HTTP-Transportfehler: java.net.MalformedURLException: no protoco
    l: REPLACE_WITH_ACTUAL_URL
    [java] at org.me.hi.HiSEI_Stub.sayHi(HiSEI_Stub.java:87)
    [java] at org.me.hi.HiClient.main(HiClient.java:10)
    [java] Caused by: HTTP-Transportfehler: java.net.MalformedURLException: no
    protocol: REPLACE_WITH_ACTUAL_URL
    [java] at com.sun.xml.rpc.client.http.HttpClientTransport.invoke(HttpCl
    ientTransport.java:140)
    [java] at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.
    java:92)
    [java] at org.me.hi.HiSEI_Stub.sayHi(HiSEI_Stub.java:70)
    [java] ... 1 more
    BUILD SUCCESSFUL
    Total time: 3 minutes 15 seconds
    I did not get why client is unable to contact server.
    Any help in this regard would very appreciable.
    Thaks in advance

  • JAX RPC extension: Problem with document/literal and MyType[]

    Hi,
    I have installed the JAX RPC extension and want to generate a stub from my WSDL file. The WSDL describes a document/literal binding.
    Problem:
    A webservice server method like:
    public wineshop.model.common.SimpleProducer[] getSimpleProducerList() throws RemoteException;
    is translated into a stub method like:
    public UnknownType getSimpleProducerList() throws Exception {..}
    Is an array of own types with the binding style "document/literal" not supported in JAX RPC 1.4 or is it just a bug?
    The WSDL file is generated by JAX RPC 1.4.
    I have installed JWSDP-1.5 and generated a stub with wscompile from the WSDL file. The generated stub has the correct method return type:
    public wineshop.ws.client.SimpleProducer[] getSimpleProducerList()
    throws java.rmi.RemoteException
    It there a workaround like replacing some JDev JARs with JWSDP-1.5 to solve the problem?
    Any hints are welcome.
    Thanks Markus

    repost.....

  • WL 8.1 and JAX-RPC 1.1 (JWSDP 1.3) problems

    I have developed several web services using Sun's JWSDP 1.3. It deploys just fine
    in WebLogic 8.1 and I can view the WSDL, etc. with no problems. I have written
    a simple test client to call the service and this is where I get errors.
    The server error is:
    Apr 14, 2004 9:43:00 AM com.sun.xml.rpc.server.http.JAXRPCServletDelegate doPost
    SEVERE: caught throwable
    java.lang.NoSuchMethodError: javax.xml.soap.SOAPElement.normalize()V
    at com.sun.xml.rpc.streaming.XmlTreeReader.parse(XmlTreeReader.java:129)
    at com.sun.xml.rpc.streaming.XmlTreeReader.next(XmlTreeReader.java:100)
    at com.sun.xml.rpc.streaming.XMLReaderBase.nextContent(XMLReaderBase.jav
    a:24)
    at com.sun.xml.rpc.streaming.XMLReaderBase.nextElementContent(XMLReaderB
    ase.java:42)
    at com.sun.xml.rpc.server.StreamingHandler.handle(StreamingHandler.java:
    108)
    at com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doPost(JAXRPCServle
    tDelegate.java:316)
    at com.sun.xml.rpc.server.http.JAXRPCServlet.doPost(JAXRPCServlet.java:6
    9)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
    (ServletStubImpl.java:971)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:402)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:305)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
    n.run(WebAppServletContext.java:6350)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
    dSubject.java:317)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
    118)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
    rvletContext.java:3635)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
    pl.java:2585)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    The client error is:
    java.rmi.ServerException: JAXRPC.JAXRPCSERVLET.28: Missing port information
         at com.sun.xml.rpc.client.StreamingSender._raiseFault(StreamingSender.java:372)
         at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:224)
         at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:61)
         at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:339)
         at com.sun.xml.rpc.client.dii.CallInvocationHandler.doCall(CallInvocationHandler.java:99)
         at com.sun.xml.rpc.client.dii.CallInvocationHandler.invoke(CallInvocationHandler.java:71)
         at $Proxy0.getWorkList(Unknown Source)
         at com.workpoint.sample.client.webservices.WorkItemServiceClient.testGetWorkList(WorkItemServiceClient.java:124)
         at com.workpoint.sample.client.webservices.WorkItemServiceClient.main(WorkItemServiceClient.java:48)
    I have a WAR for the web services that also includes the JAX-RPC, SAAJ, and other
    JARs. This WAR is bundled in an EAR with our other applications. Like I said,
    everything deploys just fine, it's at runtime the web services don't work. This
    configuration (and test client) works with Tomcat, JBoss, OC4J, and WebSphere
    with no problems. I've tried a bunch of different things and can't figure out
    why it doesn't work with WebLogic.
    Thanks for any help on this.
    Mike

    David,
    I tried your prefer-web-inf-classes and the web services deploy, but i get an
    error trying to view the wsdl. sounds like trying to get jax-rpc 1.1 web services
    running in weblogic is going to be nothing but problems. anyways, here's the error
    i get:
    Error 500--Internal Server Error
    javax.servlet.ServletException: JAXRPC.JAXRPCSERVLET.35: failed to create a template
    object
         at com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doGetDefault(JAXRPCServletDelegate.java:258)
         at com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doGet(JAXRPCServletDelegate.java:102)
         at com.sun.xml.rpc.server.http.JAXRPCServlet.doGet(JAXRPCServlet.java:76)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6350)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3635)
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    "David Karr" <[email protected]> wrote:
    >
    This is happening because WLS already contains the JWSDP classes, but
    an older
    release. The jars in your web applications are not used if other jars
    containing
    those classes are found first.
    Technically, you should be able to set the "prefer-web-inf-classes" parameter
    in your weblogic.xml file to make it "prefer" classes found in WEB-INF.
    There's
    one not very well documented aspect of this that would be a problem for
    trying
    to override particular classes, but it shouldn't be a problem for your
    case. The
    issue is that the ClassLoader that ends up being used if you set "prefer-web-inf-classes"
    (it might not be a different ClassLoader, but just imbued with modified
    behavior)
    actually does not allow classes in certain packages to be overridden.
    I can't
    remember all of the paths, but I do know that anything in "javax.xml.*"
    is specifically
    ALLOWED to be overridden.
    However, when I went down this path a while ago, I ran into other more
    obscure
    exceptions that i was unable to figure out. I ended up concluding that
    using the
    JWSDP included with WLS 8.1 was the path of least resistance. I never
    did try
    altering the global classpath of the appserver to include the jwsdp 1.3
    jars to
    override the classes in weblogic. This is another alternate approach,
    but I have
    a feeling that this will cause other unexpected problems.
    "Mike" <[email protected]> wrote:
    I have developed several web services using Sun's JWSDP 1.3. It deploys
    just fine
    in WebLogic 8.1 and I can view the WSDL, etc. with no problems. I have
    written
    a simple test client to call the service and this is where I get errors.
    The server error is:
    Apr 14, 2004 9:43:00 AM com.sun.xml.rpc.server.http.JAXRPCServletDelegate
    doPost
    SEVERE: caught throwable
    java.lang.NoSuchMethodError: javax.xml.soap.SOAPElement.normalize()V
    at com.sun.xml.rpc.streaming.XmlTreeReader.parse(XmlTreeReader.java:129)
    at com.sun.xml.rpc.streaming.XmlTreeReader.next(XmlTreeReader.java:100)
    at com.sun.xml.rpc.streaming.XMLReaderBase.nextContent(XMLReaderBase.jav
    a:24)
    at com.sun.xml.rpc.streaming.XMLReaderBase.nextElementContent(XMLReaderB
    ase.java:42)
    at com.sun.xml.rpc.server.StreamingHandler.handle(StreamingHandler.java:
    108)
    at com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doPost(JAXRPCServle
    tDelegate.java:316)
    at com.sun.xml.rpc.server.http.JAXRPCServlet.doPost(JAXRPCServlet.java:6
    9)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
    (ServletStubImpl.java:971)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:402)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:305)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
    n.run(WebAppServletContext.java:6350)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
    dSubject.java:317)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
    118)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
    rvletContext.java:3635)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
    pl.java:2585)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    The client error is:
    java.rmi.ServerException: JAXRPC.JAXRPCSERVLET.28: Missing port information
         at com.sun.xml.rpc.client.StreamingSender._raiseFault(StreamingSender.java:372)
         at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:224)
         at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:61)
         at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:339)
         at com.sun.xml.rpc.client.dii.CallInvocationHandler.doCall(CallInvocationHandler.java:99)
         at com.sun.xml.rpc.client.dii.CallInvocationHandler.invoke(CallInvocationHandler.java:71)
         at $Proxy0.getWorkList(Unknown Source)
         at com.workpoint.sample.client.webservices.WorkItemServiceClient.testGetWorkList(WorkItemServiceClient.java:124)
         at com.workpoint.sample.client.webservices.WorkItemServiceClient.main(WorkItemServiceClient.java:48)
    I have a WAR for the web services that also includes the JAX-RPC, SAAJ,
    and other
    JARs. This WAR is bundled in an EAR with our other applications. Like
    I said,
    everything deploys just fine, it's at runtime the web services don't
    work. This
    configuration (and test client) works with Tomcat, JBoss, OC4J, andWebSphere
    with no problems. I've tried a bunch of different things and can't figure
    out
    why it doesn't work with WebLogic.
    Thanks for any help on this.
    Mike

  • JAX-RPC and JSP

    Hi all,
    I have created a jax-rpc console app which works fine. (its a fairly simple online shop application). I would like to try and implement it via jsp but have never used jsp before.
    I've tried to follow the coffee-bean example, but the jsp has confused the hell out of me. (getting the cb app to run is fine, but separating out the jax-rpc element is a nightmare, what with the taglibs, build files and all). Despite my best efforts, I have failed to get a simple jsp/jax-rpc page to work.
    In so far as I can tell, it requires two builds to install the jax-rpc service, and another build to install the jsp service on the tomcat server. Is this correct?
    It would be much appreciated if anyone could post a simple example of how to get a basic jsp/jax-rpc service to work. A simple hello world would be just fine! :)
    I know I could figure out jsp alone. Thats not really the problem. Its incorporating the jax-rpc service that is killing me! All comments and suggestions are very welcome.
    //Daniel.

    Hi all,
    I have created a jax-rpc console app which works fine.
    (its a fairly simple online shop application). I would
    like to try and implement it via jsp but have never
    used jsp before.I suggest you invest some time in learning how to work with JSP technology. Usually JSP pages call JavaBeans or EJB components to do the work.
    >
    I've tried to follow the coffee-bean example, but the
    jsp has confused the hell out of me. (getting the cb
    app to run is fine, but separating out the jax-rpc
    element is a nightmare, what with the taglibs, build
    files and all). Despite my best efforts, I have failed
    to get a simple jsp/jax-rpc page to work.The Coffee Break application has two JavaBeans components that do the work of calling the JAX-RPC service: RetailPriceList and CheckoutFormBean.
    >
    In so far as I can tell, it requires two builds to
    install the jax-rpc service, and another build to
    install the jsp service on the tomcat server. Is this
    correct?What do you mean by build? To create a JAX-RPC service you have to generate files with tools, compile those files, package into a WAR, and then deploy.
    The web application containing the JSP pages and compiled JavaBeans components is packaged into another WAR and deployed separately.
    >
    It would be much appreciated if anyone could post a
    simple example of how to get a basic jsp/jax-rpc
    service to work. A simple hello world would be just
    fine! :)
    I know I could figure out jsp alone. Thats not really
    the problem. Its incorporating the jax-rpc service
    that is killing me! All comments and suggestions are
    very welcome.We'll take your comments into account for the next version of the Java Web Services Tutorial.

  • Observations/questions on JAX-RPC

    I started developing Web Services on Oracle 9iAS (9.0.2.x). What impressed me is how easy it is to turn any old class into a Web Service; you can focus on and develop the API you want, in relative ignorance that the class is being exposed through SOAP. The whole SOAP layer, including [de]serializing parameters and return values, making the HTTP connection, etc. is provided by the container and the auto-generated client stubs.
    Oracle 9iAS, and earlier versions of WebLogic (6.x) seem to pre-date JAX-RPC and don't have a standard API for client stubs. WebLogic 7 seems to have adopted JAX-RPC, though, and hopefully other vendors will follow suit; it will nice for all client stubs to have the same methods for setting the URL or a username/password.
    I did notice some important differences between Oracle Web Services and JAX-RPC, though:
    - Oracle and WebLogic both provide for the direct exposure of stateless session EJBs as SOAP services. The JAX-RPC reference impl (JWSDK) seems to only provide for the exposure of regular Java classes, and exposing an EJB requires an intermediary Java class to find and call the EJB in question. Is it the intent of the JAX-RPC standard to allow for vendors to directly expose EJBs, while just omitting this as a feature for the reference implementation?
    - Oracle also does not require an explicit step to generate client stubs and WSDL. It can generate these dynamically at runtime inside the servlet engine, and makes these available for download from the service itself. Can this style of auto-generation play nicely with JAX-RPC?
    I also have some questions about JAX-RPC:
    - if java.util.Calendar objects are serialized and deserialized by JWSDK, does that imply that java.util.TimeZone objects are as well?
    - can someone point me at where the standard for exception handling and transport is documented (what exception do services throw, and how are they translated to client-side exceptions)?
    - when the client stub is generated, does that also create client-side skeletons for each user-defined datatype (bean) used as an argument/return type for the service? Can these skeletons be made to implement a particular interface? One of the annoying things about Oracle 9iAS Web Services is that you can't use a client skeleton and the actual (server) bean object interchangeably even if the same get/set method exists on both objects, because the skeleton objects don't implement any interfaces.
    Thanks!
    -- Bill

    Hi,
    I will share with you... what I understand and know ...
    - Oracle and WebLogic both provide for the direct exposure of stateless session EJBs as SOAP services. The JAX-RPC reference impl (JWSDK) seems to only provide for the exposure of regular Java classes, and exposing an EJB requires an intermediary Java class to find and call the EJB in question. Is it the intent of the JAX-RPC standard to allow for vendors to directly expose EJBs, while just omitting this as a feature for the reference implementation?
    Well jsr 109 opens up the possibility of having stateless
    session beans as end points. Naturally to stay aligned with
    this jsr 109, lot of application server vendors have started
    to support this.
    The JAX-RPC ri that you are looking at was releazed befor JSR
    109 spec was solidified and the ri gets released.
    - Oracle also does not require an explicit step to generate client stubs and WSDL. It can generate these dynamically at runtime inside
    the servlet engine, and makes these available for download from the service itself. Can this style of auto-generation play nicely with
    JAX-RPC?
    You should check out the next version of j2ee ri.
    Some of your questions might get address there,
    - if java.util.Calendar objects are serialized and deserialized by JWSDK, does that imply that java.util.TimeZone objects are as well?
    Have check out the jsr 101 Chapter 19 ? That should answer
    your question. You can get it from www.jcp.org
    - can someone point me at where the standard for exception handling and transport is documented (what exception do services throw, and how are they translated to client-side exceptions)?
    http://java.sun.com/webservices/docs/1.0/api/index.html
    Check out the javadocs at the above location of service specific exceptions.
    Also check out 8.2.6 from the spec it might help a little.
    asengup

  • JAX-RPC vs OC4J J2Ee web service

    Hi,
    Currently we use Oracle10G 10.0.3 developer preview edition. we deployed same web service on both JAX-RPC platfrom and OC4J J2EE web service platfrom (RPC encoding style). We found that old platform seems to perform better than JAx-RPC platfrom with regard to serialization and de-serialzation. We also did the test on Doc/literal style in JAX-RPC platfrom and its performance is not as good as the one deployed on old platform. We understand JAX-RPC is new implementation and Oracle10.0.3 is under developer preview edition and so it may not be optimized. We have following questions
    1. Is this a known issue in JAX-RPC platform?
    2. Is there anyway to optimize JAX-RPC web service? Like using different XMl parser (instead of Oracle XML parser)
    3. When is the final release of 10.0.3 expected?
    4. Will Oracle be supporting old web service platfrom (OC4J J2EE web service platform)? If so how long?
    Thanks and regards
    __Hari

    Hi,
    Currently we use Oracle10G 10.0.3 developer preview edition. we deployed same web service on both JAX-RPC platfrom and OC4J J2EE web service platfrom (RPC encoding style). We found that old platform seems to perform better than JAx-RPC platfrom with regard to serialization and de-serialzation. We also did the test on Doc/literal style in JAX-RPC platfrom and its performance is not as good as the one deployed on old platform. We understand JAX-RPC is new implementation and Oracle10.0.3 is under developer preview edition and so it may not be optimized. We have following questions
    1. Is this a known issue in JAX-RPC platform?
    2. Is there anyway to optimize JAX-RPC web service? Like using different XMl parser (instead of Oracle XML parser)
    3. When is the final release of 10.0.3 expected?
    4. Will Oracle be supporting old web service platfrom (OC4J J2EE web service platform)? If so how long?
    Thanks and regards
    __Hari

  • JAX-RPC Client - java.rmi.RemoteException:/getPort best practices

    We are working on java webservices(JAX-RPC style) and while consuming Java WebService sometime getting ‘Remote Exception’ .I have generated client side code with weblogic ant task “clientgen”.
    1: Exception
    java.rmi.RemoteException: SOAPFaultException - FaultCode [{http://schemas.xmlsoap.org/soap/envelope/}Server] FaultString [Failed to invoke end component {service implementation class name} (POJO), operation= {webmethode name}
    -> Failed to invoke method
    ] FaultActor [null] Detail [<detail><java:string xmlns:java="java.io">java.lang.NullPointerException
    </java:string></detail>]; nested exception is:
    weblogic.wsee.jaxrpc.soapfault.WLSOAPFaultException: Failed to invoke end component {service implementation class name} (POJO), operation={webmethode name}
    -> Failed to invoke method
    {Package name}.ManagementPortType_Stub.createXXX(xxxPortType_Stub.java:37) // This line is clientgen generated code
    {From this line its clear that clientgen generated code failed to get webservice port}
    2: Following is our implementation to invoke webservice:
    ManagementService service =
    new ManagementService_Impl(“WSDL URL”)
    ManagementPortType port = service.getManagerHTTPPort();
    Port.getServiceName();
    Our code is executing first two lines for every webservice request, and as per our observation these two lines (mark in bold) is taking long time to execute and due to this sometime gives ‘remote exception’ (when there is more request for web service consumption).
    3: My questions:
    1> Why does it take so long on initialization of service and port object?
    2> Is there any problem if I share “port” object for multiple request?
    3> what are the best practices in this type of implementation?
    Help would be greatly appreciated !

    Hi,
    Thanks for your reply.
    My service is deployed and working fine.
    NPE is due to {Package name}.ManagementPortType_Stub is null and code is executing createXXX() methode on it.
    Anyway i cant do anaything here because this is a clientgen generated code.

  • Type casting in JAX-RPC

    Hello
    I was trying to do a JAX-RPC application, and I had some problems with type casting. My application worked fine with primitive types, vectors of primitive types, and beans with primitive type properties. But it didn't work with vectors of beans, or ArrayList's of beans... It couldn't deserialize the result on client side... Can anyone help?
    The Java Web Services Tutorial says that JAX-RPC supports beans and vectors, but I had the impression that this is not a "recursive" support, like "beans with vectors" or "vectors of beans"... Does it make sense?
    By the way, I was using a DII client...
    Thanks,
    Alexandre Murakami

    Hello!
    Thanks for the reply! I can't put the code of my application here (because it's quite big and it's from work)... But I followed the dii client example from the Web Services Tutorial...
    I'm trying to do a kind of a general client... The parameters are the URL of the service, the name of the operation, a list of parameters and the return type class.. And it takes the rest of the service information from the WSDL file... About the return type, I take the QName of the return type from the WSDL:
    <message>
    <part name="result" type="...">...
    then I call the call.setReturnType(QName, Class) method. The return type was an array of a very simple bean, something like:
    class Person {
    String name;
    int age;
    public String getName() {...}
    public void setName(...) {...}
    public int getAge() {...}
    public void setAge(...) {...}
    I don't know if the information I put here is enough... but anyway, thanks for the reply!
    Alexandre Murakami

  • JAX-RPC Web services client error

    Hi!
    I use Jdevelop 10g 9.0.5.2 with JAX-RPC extension and OC4J 10.1.3.
    I can develop RPC/literal and document/literal Web services, but when I try to run a client program I've got this error.
    "Error: cannot access class oracle.j2ee.ws.saaj.soap.Constants; file oracle\j2ee\ws\saaj\soap\Constants.class not found"
    Could anyone tell me how to solve this problem?

    Hi,
    I am attempting the same task. With different problems.
    After creating a .war with deploytool, I try to deploy it to a OC4J that comes with JDev.
    It result in an exception saying the Servlet is not a Servlet. Wich is true.
    Do you know how to deploy this .war to an OC4J? (read IAS 9.0.3)

  • Jax RPC and security

    Hello
    i have a little question about the jax rpc and security stuff
    i have a webservice running
    once over http://localhost:8080/appl/service
    and over ssl too http://localhost:8443/appl/service
    i am starting the server and then the client is generating static stubs over the ...8080/appl/ws/service?WSDL
    is it possible to let the client application generate the stubs over the https port?
    or do i have to secure the files on port 8080 via authentication then let the ClientDeveloper download the wsdl-files and let him then create the stubs with a local copy of the wsdls?
    Any sugestions?
    Thx for any Ideas
    Michael / Adraw

    Michael / Adraw,
    Sorry for piggybacking on your request but I see you have your web service running on over SSL. When I tried that with the jwsdp 1.3 I am unable to browse pages over SSL with netscape and I can not connect with a client web services application (written in java).
    Are you able to do this with jwsdp 1.3??
    Brian Mason
    [email protected]

  • JAX-RPC: Web service where both server /and/ client are services?

    I'm considering a two-way Web service in an application that I'm designing and would appreciate any insight from prior experience.
    This will be a standard client-server application, where the server broadcasts messages and the client, in turn, can request further information about the messages that it receives (think RSS-style updates, but with more interaction). [strong]However[strong], instead of having the client poll the server for new messages, I'd like to have the client register itself with the server as a message listener. The server is currently implemented as a Web service on port X. I'd like the client to register itself with the server, and then receive messages on port Y.
    I'm considering a design like the following (note the directions of the inheritance arrows):
    ( Server class )  --<-- ( RemoteServerImpl class ) -->-- / RemoteServer interface /
           |
    ( Listener class ) --<-- ( RemoteListenerImpl class ) -->-- / RemoteListener interface /Some considerations:
    * In both cases, the client and server are broken out into an interface and two classes. The non-Remote classes implement all of the functionality. The RemoteX interfaces declare the methods that will be exposed via RPC, and the RemoteXImpl classes are empty subclasses of the non-Remote classes.
    * In order to register itself with the Server, the Listener must be passed in as a method parameter, and thus conform to the JAX-RPC specification for value types. However, value types can't implement java.rmi.Remote.
    * Only the Server and Listener know anything about each other.
    * This application can be run either remotely or locally, depending on how the Server and Listener are instantiated. For the latter, they're instantiated directly and the listener is registered with the Server. For the latter, the RemoteX interfaces will point to the service stubs.
    * I don't see an easy way to allow both the Server and the Listener to have references to each other (at least now without some casting magic), since one of them will have to conform to the value type specification, which requires that all of its fields must be valid JAX-RPC types.
    I've got the Server portions implemented and working, and am now going to turn to the Listener stuff. Can anybody see a fundamental problem with this design, or can suggest something better?

    Hi There,
    Because web services are fundamentally a Services-oriented architecture, and not an Object-oriented one, you are unable to pass objects by reference (only by value) hence the design decision to not allow rmi.Remote objects to be sent across the wire. The best way would be to abstract an object which does itself not represent a server, but a route to a server (lets call it ServerPointer). This must contain address, port, service info, etc.
    Now, in your Server class, create a factory method which takes a ServerPointer, and returns a reference to a
    remote server, e.g. protected Server createServer( ServerPointer p ) (using the necessary APIs to get such a reference)
    Hope this helps...

  • JAX-RPC And Non-Java Web Service

    Hi,
    This is a total shot in the dark. I'm attempting to consume an RPC web service developed in Delphi. I've created a JAX-RPC client in NetBeans from the published WSDL, attached below. I've created calls to several of the procedures available. What's bizarre, at least to me, is that half of them work fine and half of them don't. In all cases where they don't I'm getting a returns SOAP envelope indicated an access violation, attached below. There are no errors in any of the server logs and the developer assures me that the procedures do, in fact, work from his client (also developed conveniently enough in Delphi).
    I'm willing to take him at face value for the moment and assume that the problem is in my client implementation, although I have no idea where it would lie. The only difference I've been able to gather between the features which work and those that don't is the size of the return package...it would most likely be much larger than the ones that don't work.
    The service is an ISAPI dll running under IIS on Windows Server 2003. Any clues or guidance anyone would be willing to provide would be most welcome. On to the files:
    There wasn't enough room to post the entire thing so I've included one working (CheckStock) and non-working (GetLibTrace) function.
    WSDL:
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" name="IInnovaServiceservice" targetNamespace="http://tempuri.org/" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/">
      <message name="CheckStock2Request">
        <part name="OPC" type="xs:string"/>
      </message>
      <message name="CheckStock2Response">
        <part name="QTY" type="xs:int"/>
        <part name="messages" type="xs:string"/>
        <part name="return" type="xs:int"/>
      </message>
      <message name="GetLibTrace5Request">
        <part name="LibName" type="xs:string"/>
      </message>
      <message name="GetLibTrace5Response">
        <part name="dimensions" type="xs:string"/>
        <part name="messages" type="xs:string"/>
        <part name="return" type="xs:int"/>
      </message>
      <portType name="IInnovaService">
        <operation name="CheckStock">
          <input message="tns:CheckStock2Request"/>
          <output message="tns:CheckStock2Response"/>
        </operation>
        <operation name="GetLibTrace">
          <input message="tns:GetLibTrace5Request"/>
          <output message="tns:GetLibTrace5Response"/>
        </operation>
      </portType>
      <binding name="IInnovaServicebinding" type="tns:IInnovaService">
        <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="CheckStock">
          <soap:operation soapAction="urn:InnovaServiceIntf-IInnovaService#CheckStock" style="rpc"/>
          <input>
            <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:InnovaServiceIntf-IInnovaService"/>
          </input>
          <output>
            <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:InnovaServiceIntf-IInnovaService"/>
          </output>
        </operation>
        <operation name="GetLibTrace">
          <soap:operation soapAction="urn:InnovaServiceIntf-IInnovaService#GetLibTrace" style="rpc"/>
          <input>
            <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:InnovaServiceIntf-IInnovaService"/>
          </input>
          <output>
            <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:InnovaServiceIntf-IInnovaService"/>
          </output>
        </operation>
      </binding>
      <service name="IInnovaServiceservice">
        <port name="IInnovaServicePort" binding="tns:IInnovaServicebinding">
          <soap:address location="http://172.20.10.145:8080/innovaservice.dll/soap/IInnovaService"/>
        </port>
      </service>
    </definitions>My client:
    package com.signet.innova.client;
    import com.signet.innova.client.interfaces.IInnovaService;
    import com.signet.innova.client.interfaces.IInnovaServiceservice_Impl;
    import java.net.URL;
    import java.rmi.RemoteException;
    import java.util.ArrayList;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.Stub;
    import javax.xml.rpc.holders.Holder;
    import javax.xml.rpc.holders.IntHolder;
    import javax.xml.rpc.holders.StringHolder;
    import javax.xml.soap.MessageFactory;
    import javax.xml.soap.SOAPMessage;
    import javax.xml.ws.Dispatch;
    import javax.xml.ws.Service;
    public class InnovaClient {
        private void testConnection() {
            Stub stub = createProxy();
            IInnovaService service = (IInnovaService) stub;
            StringHolder sh1 = new StringHolder();
            StringHolder sh2 = new StringHolder();
            StringHolder sh3 = new StringHolder();
            IntHolder ih1 = new IntHolder();
            IntHolder ih2 = new IntHolder();
            IntHolder ih3 = new IntHolder();
            try {
                System.out.println("Calling checkStock()");
                service.checkStock("0103877866", ih1, sh1, ih2);
                System.out.println(" service returned => " + ih1.value + ":" + sh1.value + ":" + ih2.value);
            } catch (RemoteException re) {
                System.out.println(" service returned => " + re.toString());
            try {
                System.out.println("Calling getLibTrace()");
                service.getLibTrace("REGULAR", sh1, sh2, ih3);
                System.out.println(" service returned => " + sh1.value + ":" + sh2.value + ":" + ih1.value);
            } catch (RemoteException re) {
                System.out.println(" service returned => " + re.toString());
        private Stub createProxy() {
            return (Stub) (new IInnovaServiceservice_Impl().getIInnovaServicePort());
        public static void main(String[] args) {
            InnovaClient client = new InnovaClient();
            System.out.print("Running testConnection()...");
            client.testConnection();
    }The request and response packets are in my reply below. Ran out of characters. :o)
    Edited by: Pablo_Vadear on Dec 22, 2009 11:19 PM

    Correction from above...".it would most likely be much larger than the ones that don't work" should have been "it would most likely be much larger IN THE ONES THAT DON'T WORK". Sorry.
    The request:
    POST /innovaservice.dll/soap/IInnovaService HTTP/1.1
    Content-Type: text/xml; charset=utf-8
    Accept: text/xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
    Content-Length: 484
    SOAPAction: "urn:InnovaServiceIntf-IInnovaService#CheckStock"
    User-Agent: Java/1.6.0_17
    Host: 172.20.10.145:8080
    Connection: keep-alive
    <?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns0="urn:InnovaServiceIntf-IInnovaService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><env:Body><ns0:CheckStock><OPC xsi:type="xsd:string">0103877866</OPC></ns0:CheckStock></env:Body></env:Envelope>POST /innovaservice.dll/soap/IInnovaService HTTP/1.1
    Content-Type: text/xml; charset=utf-8
    Accept: text/xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
    Content-Length: 491
    SOAPAction: "urn:InnovaServiceIntf-IInnovaService#GetLibTrace"
    User-Agent: Java/1.6.0_17
    Host: localhost:8080
    Connection: keep-alive
    <?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns0="urn:InnovaServiceIntf-IInnovaService" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><env:Body><ns0:GetLibTrace><LibName xsi:type="xsd:string">REGULAR</LibName></ns0:GetLibTrace></env:Body></env:Envelope>And the response:
    <?xml version="1.0"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><NS1:CheckStockResponse xmlns:NS1="urn:InnovaServiceIntf-IInnovaService"><return xsi:type="xsd:int">0</return><QTY xsi:type="xsd:int">0</QTY><messages xsi:type="xsd:string">Item 0103877866 retrieved OK.
    Right side OPC.
    </messages></NS1:CheckStockResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
    HTTP/1.1 200 OK
    Date: Tue, 22 Dec 2009 23:18:40 GMT
    Server: Microsoft-IIS/6.0
    Content-Type: text/xml
    Content-Length: 486
    <?xml version="1.0"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultactor/><faultcode>SOAP-ENV:Server</faultcode><faultstring>Access violation at address 00000000. Write of address 00000000</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>Any help appreciated.
    Edited by: Pablo_Vadear on Dec 22, 2009 11:23 PM

Maybe you are looking for

  • Create a new user in Oracle Bi enterprsie edition plss help

    how can we create new users in for oracle bi currently i have only adminsitrator as a user i want to create 5 different users please heklp me with steps to create the users which module is to be used please guide me with steops as am new to otracle b

  • Why won't my mac file share with my network?

    I want to share my files throughout my home network, but my mac computer is the only one that is causing trouble. My other windows computers and the USB drive connected to my router is working fine. Whenever I try to look for these devices through th

  • Spry Sliding Panels not working in IE

    I've been working for about 12 hours straight on getting this working correctly - my Sliding Panels just aren't working at all in IE. The panels load properly - for example, you can see only the first loaded panel, not all of them - but when I click

  • Indesign in CS5.5 not launching when selected.

    Hi, We have Indesign as part of the CS5.5 suite that was working fine until yesterday when it would not launch once it was selected. I have reinstalled the program and the whole suite but without any luck. All the other programs in the suite work fin

  • Double-click on tree nodes

    Is there a way to disable the double-click-to-expand- node feature? This seems to be a default behaviour, wish to remove it. Thanks in advance.