JWSDP 1.4, JAX-RPC, wscompile, http proxies

I have a JAX-RPC client that works properly. However, I'm trying to modify the client so that RPC calls can go through an http proxy prior to reaching the web service.
Here are some of the problems I'm experiencing:
There are posts on this site, and elsewhere on the net, stating that the wscompile -httpproxy:host:port option can be used to provide this solution. However, wscompile generates the same exact code - whether the httpproxy option is used or not. Is this a problem in JWSDP 1.4?
There are also posts that state to use properties, such as http.proxyHost or proxyHost. I've used several versions of this solution (while using a sniffer to verify network activity), but all that happens is that the code continues to call directly to the web service - not the http proxy. Makes me think these properties are only useful when using http directly. Many of the posts I've seen regarding this are two years old, and I've seen at least three different opinions on how the property strings should be named. Anybody know the real solution?

For me these system properties do work:
proxyHost, proxyPort (maybe also http.proxyHost, http.proxyPort) for Http
https.proxyHost, https.proxyPort for Https
The nice thing is that from a WebStart application or the plug-in these properties are set automatically from the browser configuration if not reconfigured manually.

Similar Messages

  • JAX-RPC wscompile modeler error

    I run wscompile with the following arguments:
    -verbose -keep -features:documentliteral -gen:both -d generated -nd other -s source -model model.txt config.xmlI am getting an error message running JAX-RPCs wscompile tool against my WSDL. The error message is:
    error: modeler error: model error: undeclared namespace prefix: ""
    Unfortunately, this message doesn't give me enough information to begin locating the problem.
    Has anyone else run into this problem?
    I am running JWSSDK 1.2 on Windows XP w/JDK 1.4.1.
    Thanks,
    Chris

    i think you should use the encoding and the use
    specified bythe wsdl and try to override it. Also
    i would encourage you to do this in 2 steps.
    As you are starting from a wsdl :
    wscompile -import -verbose -keep -d generated -nd other -s source -model model.gz config.xml
    then have a config.xml for the client which would
    allow you to do
    wscompile -gen:client -verbose -keep -d generated -nd other -s source config-client.xml
    Also please check the validity of the wsdl or post it back on.

  • Jax-rpc and https and multiple keystores - a limitation?

    hi,
    When using the JAX-RPC libraries for a web services client application in my app server I want to make use of a different keystore then the one set by using the default system properties.
    reason being I have multiple ssl enabled apps runing in the app server and I want to use different client keys in the apps (I use client certificate authentication)
    from what I see now I expect this to be not possible - since creating the http(s) connection is completely hidden from a development point of view.
    any ideas on the possibilities/impossibilities?
    regards Joost ([email protected])

    Can you not use command line switches to specify the truststore, e.g.
    -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.trustStore=truststore_1-4

  • JWSDP 2.0 JAX-RPC example problem Fast Infoset

    Hi,
    I installed JWSDP 2.0 and and Tomcat 5.0 for JWSDP. The server runs fine and the example HelloWorld is accessible (I can see the WSDL file in my browser: http://localhost:8080/jaxrpc-HelloWorld/hello?WSDL).
    The Problem is that I can not run the client: I tried "ant run-client". The error occurs while trying to create a stub in the file "HelloClient.java" with the following line of code:
    stub = (HelloIF_Stub) (helloWorldService.getHelloIFPort());
    This is the error I get:
    [java] Exception in thread "main" java.lang.NoClassDefFoundError: org/jvnet/fastinfoset/FastInfosetSource
    [java] at hello.HelloWorldService_Impl.getHelloIFPort(HelloWorldService_Impl.java:59)
    [java] at hello.HelloClient.setUp(HelloClient.java:68)
    [java] at hello.HelloClient.main(HelloClient.java:45)
    [java] Java Result: 1
    I am not sure about the structure of the application, so I don't know where to look for the "FastInfosetSurce" file.
    Thanks for any help.
    Best regards.

    Hi,
    I reselved the problem by just copying the FastInfoset to the jaxrpc\lib directory (I am sure this should work in a different way).
    Well, the next problem I am getting is that the "XMLStreamWriter" class cannot be found. This class is contained in jsr173_api.jar.
    I guess my main question is the following:
    Which projects are necessary to get this simple helloWorld example to work?
    I did set the JWSDP_HOME varible. Is there another setting I have to make to have all necessary jar-files available and to be able to run the samples?
    Could anybody point me to a tutorial that does not only show a few lines of code (as the HelloWorld sample in the JWSDP-Tutorial) but that would instead lead me through a step-by-step sample application that I write by myself and actually runs at the end? The example in the JWSDP-Tutorial uses all kinds of existing config files which are not explained.
    Thanks for your help.

  • JAX-RPC documentliteral with -model option problems in JWSDP 2.0

    Hello,
    I am trying to deploy a service generated with JAX-RPC. Howeverr when I write URL (http://localhost:8080/webservicedeployable/webservice001) in a browser I am getting message: 404 Not Found: Invalid request. Appending ?WSDL shows propers wsdl code, so endpoint URL is allright.. There is my config file delow:
    <?xml version="1.0" encoding="utf-8"?>
    <configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
      <service name="webservice001"
               targetNamespace="http://scdjws/webservices/wsdl"
               typeNamespace="http://scdjws/webservices/types"
               packageName="com.service001">
        <interface name="service.MyServicePort" servantName="service.MyServiceImpl"/>     
      </service> 
    </configuration>I am using command:
    wscompile -gen:server -f:documentliteral -s "C:\Documents and Settings\Michal\jbproject\mojservice\src\" -classpath WEB-INF/classes -d build -model webservice001.xml.gz config.xml -keepmy jaxrpc-ri.xml is:
    <?xml version="1.0" encoding="utf-8"?>
    <webServices xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/dd"
                 version="1.0"
                 targetNamespaceBase="http://java.sun.com/xml/ns/jax-rpc/wsi/wsdl"
                 typeNamespaceBase="http://java.sun.com/xml/ns/jax-rpc/wsi/types"
                 urlPatternBase="/ws">
      <endpoint name="service001"
                displayName="Service 001"
                description="This is service001"
                interface="service.MyServicePort"
                implementation="service.MyServiceImpl"
                model="/webservice001.xml.gz"/>
      <endpointMapping endpointName="service001"
                       urlPattern="/webservice001"/>
    </webServices>I am using Tomcat 5.5.16 and JWSDP 2.0.
    Making a call to the service throws exception:
    java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:8080/webservicedeployable/webservice001
         at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:791)
    Thank you in advance for all suggestion.
    Michal

    Hi,
    I reselved the problem by just copying the FastInfoset to the jaxrpc\lib directory (I am sure this should work in a different way).
    Well, the next problem I am getting is that the "XMLStreamWriter" class cannot be found. This class is contained in jsr173_api.jar.
    I guess my main question is the following:
    Which projects are necessary to get this simple helloWorld example to work?
    I did set the JWSDP_HOME varible. Is there another setting I have to make to have all necessary jar-files available and to be able to run the samples?
    Could anybody point me to a tutorial that does not only show a few lines of code (as the HelloWorld sample in the JWSDP-Tutorial) but that would instead lead me through a step-by-step sample application that I write by myself and actually runs at the end? The example in the JWSDP-Tutorial uses all kinds of existing config files which are not explained.
    Thanks for your help.

  • 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

  • Help install jwsdp 1.0 and run JAX-RPC  example

    I installed jwsdp1.0 today and I tried to run the Hello world example for JAX-RPC (http://java.sun.com/webservices/docs/1.0/tutorial/doc/JAXRPC3.html).
    The problem is with any command passed at the console (ant command or startup (tomcat), deploytool, etc) I always get the following message : Exception in thread "main" java.lang.NoClassDefFoundError: Files/Microsoft.
    The operating system in win XP and jre is 1.4.0.
    The variables I used are JAVA_HOME (D:\Java\j2sdk1.4.0)
    and JWSPD_HOME (d:\java\jwsdp-1_0). Both bin folder are setup on the path variable (%JAVA_HOME%\bin;%JWSPD_HOME%\bin).
    Help will be very much appreciated

    Maybe this is just a typo in your post, but the variable name should be JWSDP_HOME, not JWSPD_HOME.
    Mike

  • Deploy of jax-rpc sample  hello fails on jwsdp-1.2 Why ?

    Hi Friends,
    I am installed Jwsdp-1.2 on my machine.I am trying to
    deploy the hello sample which comes as part of jax-rpc.When i use the
    ant tool to deploy the war file i get the following error.
    C:\jwsdp-1.2\docs\tutorial\examples\jaxrpc\hello>ant deploy
    Buildfile: build.xml
    deploy:
    BUILD FAILED
    file:C:/jwsdp-1.2/docs/tutorial/examples/jaxrpc/common/targets.xml:14: java.io.IOException: Server returned HTTP response code: 401 for URL: http://localhost:8080/manager/deploy?path=%2Fhello-jaxrpc
    Why am i getting this error while deploying to tomact engine.Also,even
    if i try to access the url,
    http://localhost:8080/manager/deploy?path=%2Fhello-jaxrpc
    directly from the browser i get this error
    FAIL - Unknown command /deploy
    What should i do so as to deploy the sample jax-rpc hello program.Anyone
    knows about this please reply soon.Any help regarding this will be greatly appreciated.

    Error 401 means you're not authorised to view the page. Ant needs to know your username and password for Tomcat before it can access the deployment features.
    Go to http://java.sun.com/webservices/docs/1.0/tutorial/doc/GettingStarted2.html and follow the guidelines in the section "Creating the Build Properties File"

  • Cannot import WSDL to JAVA JAX-RPC (using WSCOMPILE)

    I exported a WSDL-file (i.e. for RFC_PING) via the BSP WebServiceBrowser (WAS 6.20). For generating the interface i have to start the wscompile-tool of JAX-RPC (right ?). But wscompile answers with an error:
    unerwartetes Element "definitions" in Konfigur
    ationsdatei (Zeile 1)
    Are the WSDL-files not compatible ? How I have to work with the WSDL ?

    Oops, i used a wrong configfile for the wscompile tool. It's all right now.

  • Very basic questions on JAX-RPC and wscompile

    Hello,
    well, I have this tool that generates java packages. The thing is that this tool needs now to generate JAX-RPC compliant java packages. To verify its compilance, I am using wscompile 1.1.3 build R1 and Sun AS Edition 8.2.
    My questions are:
    - In the generated packages, there might some classes with no attributes at all :P(remember that I am handling automatically generated classes). When running wscompile to generate the corresponding WSDL, I am getting "invalid type for JAX-RPC structure", even if it has a default empty constructor. I know it looks stupid, but I could not find anywhere in the JAX-RPC specification saying that for a class to be jaxrpc compliant, it must have at least one attribute. Any idea?
    - It might be the case that I have same class name in different packages:
    mypackage.structures.messages.A
    mypackage.structures.segments.AWhen generating the server stub, I am getting:
    Duplicate type name "{urn:mynamespace}A" for java type "mypackage.structures.segments.A" found.
    Is there a way to tell wscompile to keep the class package name for every class when generating the wsdl? Or is it always building all the classes together in the package specified in the service/packageName within the configuration xml file?
    Thanks a lot in advance for any help.

    1. Does predictive text only work in the SMS app, or does it work in the apps for email, writing notes, etc?
    It works with Safari, the Mail client, the Notes app, and with the SMS app.
    2. Can you turn the predictive text off? (I find it wildly irritating, because I know far better what words I want to write than a pesky phone does!)
    Yes.
    3. Having email sent to a mobile is a whole new world for me! Do I need to subscribe to MobileMe at £££ per month, or is there another way of having email from my three accounts forwarded to my mobile?
    You can access any IMAP or POP account with the iPhone's Mail client, and access multiple email accounts. I currently access to email accounts with the iPhone's mail client - my MobileMe account, and a business POP account. You can access all 3 of your email accounts with the iPhone's Mail client.

  • HTTP Session caching possible using WL7 JAX-RPC ?

    We're using WL7, and using the JAX-RPC API to access external webservices.
    Basically, we create the appropriate 'stubs' from the target WSDL using
    clientgen. Then we invoke the target method. Code looks something like this:
    Client_Impl client = new Client_Impl; // implementation of target
    ClientPort_Stub stub = client.getClientPort();
    stub._setProperty(javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY, url)
    stub.invoke(args);
    Now, when is the actual endpoint URL being created ? Is it when the invoke()
    method is called ?
    It cannot be during the constructor since I pass the target URL after that ...
    My problem is that I have to call the 'invoke' method quite frequently, and hence
    would like the HTTP session to be reused, rather than recreated each time. Right
    now,
    I construct the stub each time I have to call the target method, and I'm wondering
    if
    I just cache the stub and keep calling the target method each time, will the underlying
    HTTP session be reused ? Any ideas ?
    Currently, if I do netstat on my Sun Solaris box (where this runs), I see the
    TCP
    connection being recreated during each invocation ...
    -john

    Hi John,
    You can do multiple invokes on the same stub. There is no
    need to create a new one for each invoke.
    WLS 7.0 use HTTP 1.0 with keep alive. If the server respects
    HTTP keep alive, then WLS will not create a new connection.
    HTHs,
    -manoj
    "john" <[email protected]> wrote in message news:[email protected]..
    >
    We're using WL7, and using the JAX-RPC API to access external webservices.
    Basically, we create the appropriate 'stubs' from the target WSDL using
    clientgen. Then we invoke the target method. Code looks something likethis:
    >
    Client_Impl client = new Client_Impl; // implementation of target
    ClientPort_Stub stub = client.getClientPort();
    stub._setProperty(javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY, url)
    stub.invoke(args);
    Now, when is the actual endpoint URL being created ? Is it when theinvoke()
    method is called ?
    It cannot be during the constructor since I pass the target URL after that...
    My problem is that I have to call the 'invoke' method quite frequently,and hence
    would like the HTTP session to be reused, rather than recreated each time.Right
    now,
    I construct the stub each time I have to call the target method, and I'mwondering
    if
    I just cache the stub and keep calling the target method each time, willthe underlying
    HTTP session be reused ? Any ideas ?
    Currently, if I do netstat on my Sun Solaris box (where this runs), I seethe
    TCP
    connection being recreated during each invocation ...
    -john

  • Plugin non-HTTP transports in JAX-RPC

    Is it possible to plugin a non-HTTP transports in JAX-RPC?
    I know that Apache SOAP provides a way of plugin non-HTTP transports for it,
    Is there any document that can teach me to write a non-HTTP transport and plug it into JAX-RPC?

    You cannot plug in non-HTTP transports into the JAX-RPC reference implementation.

  • Bug/flaw in JAX-RPC xrpcc generated output (JWSDP EA1)

    I believe I have found a bug (or flaw) in how xrpcc (JWSDP EA1) is generating stubs and WSDL code as follows:
    If you use simple parameter types (ints, doubles, Strings et al) then xrpcc generates a name that is based on the type (eg. String_1) rather than the
    parm name (senderID) in the WSDL and stub code. I have noticed, however, that if you are using a JavaBean as an input/output parameter to/from a remote method, it generates an XMLSchema ComplexType with the proper names of subelements, so that situation seems to be OK.
    I think this is a bug/flaw in xrpcc...
    For example, if you try to use a remote method that looks somewhat like:
    public int SendTrajectory( String senderID )
    You get the following fragment generated in the WSDL output from xrpcc:
    <message name="sendTrajectory">
    <part name="String_1" type="xsd:string"/>
    whereas I think it should use the actual parameter name for simple parameters and should look like:
    <message name="sendTrajectory">
    <part name="senderID" type="xsd:string"/>
    I read the JAX-RPC Spec (v 0.7....pdf on the Sun web site) and it seems to allude to the fact that the names SHOULD be based on the parameter name in
    section 5.5.5. where it specifically states:
    "Each Java parameter (in the Java method signature) is mapped to a message part in the wsdl:message. This wsdl:message corresponds to the wsdl:input element for the mapped wsdl:operation. Each message part has a name attribute that is mapped based on the name of the Java parameter and a type attribute (an XML data type)"
    ...and the example the shown further down in that section of the JAX-RPC spec re-inforces this opinion.
    The generated code works with the current version of JAX-RPC and xrpcc, that is not the problem. There is a bigger issue with this situation, since you
    cannot (and should not) assume that a web service (even if generated with JAX-RPC) will be invoked by a client that was generated with JAX-RPC tools.
    The problem is really evident when you don't use JAX-RPC to talk to a JAX-RPC generated service, since you have to use these funny names like String_1, Double_3 which have no application context semantics and thus will invariably lead to some really subtle bugs in remote calls.
    We have used JAX-RPC to generate our server side web service in the normal manner. However, our client is running on an embedded Java (CLDC/MIDP
    level device....on an aJile Java chip in fact) where the JAX-RPC footprint is way too massive for the confines of the MIDP/CLDC platform. So we are using the Enhydra kSoap API and libraries on the client end to invoke the back end JAX-RPC service. This works fine by the way! We have successfully invoked JAX-RPC wrapped services from the embedded Java platform. The
    difficulty stems from the fact that the kSOAP api (and others) require you to bind the values of the parameters for the SOAP invocation by using the WSDL <part> name, and so these funny type-based names become visible in your client application code. Ouch!
    For example, my kSOAP calls to invoke our JAX-RPC service look like this (where request is a SOAP web services request using the kSOAP API's):
    request.addProperty ( "String_1", "SaJe314159" );
    request.addProperty ( "Double_2", pvt.getLatitude() );
    request.addProperty ( "Double_3", pvt.getLongitude() );
    request.addProperty ( "Double_4", pvt.getBearing().floatValue() ) );
    request.addProperty ( "Double_5", pvt.getVelocity() );Whereas it should really look like the following, based on our interface definitions:
    request.addProperty ( "senderID", "SaJe314159" );
    request.addProperty ( "latitude", pvt.getLatitude() );
    request.addProperty ( "longitude, pvt.getLongitude() );
    request.addProperty ( "bearing", pvt.getBearing().floatValue() ) );
    request.addProperty ( "velocity", pvt.getVelocity() );The problem is that xrpcc generates the names as in the first example (String_1, Double_2) instead of using the parameter names (eg. "senderID, latitude).
    We can work around this in two ways for now: 1) use the type-based generated name labels for the moment, or 2) go into the xrpcc generated stub code and WSDL and make manual changes. In the longer term, I'm sure you appreciate why either of these workarounds are not acceptable.
    Based on the above, I think that there is a bug/flaw in this version of xrpcc (it's using a parameter type rather than a parameter name to generate the <message>/<part> element in the WSDL (and of course in the generated stubs and such).
    Thoughts? Fix in EA2 perhaps?
    Thanks!
    ....Andrzej

    I've got the same problem. I edited the WSDL and regenerated both Server and Client classes and it then didn't work. Forget the error but it seemed to have incorrectly capitalised a letter in a class/method name.
    I am trying to define a common WSDL doc that our suppliers must conform to when providing us with a web service. My aim is that the common WSDL will be OK for both Java-based web services and .NET based web services. I have succeeded in this task apart from the method parameter name issue. .NET (of course) does it correctly, and its WSDL correctly names the method parameters. However Java Web Services via xrpcc produce this ridiculous String_1, String_2 etc which bear no relation to the method parameters. I cannot very well go to our suppliers who are using .NET and demand that their method/function parameters are named String_1, String_2 - and wouldn't Bill be pleased with my excuse that I'm trying to get equivalence with the deficiencies of Java ?

  • JAX-RPC outside JWSDP?

    I created a sample application based off the HelloWord example in the tutorial, I build and compiled a test web service and tried to deploy it to a prexisting tomcat 4.0 running jdk1.4, not the one bundled with the tool kit. I added the jaxrpc-api.jar, jaxrpc-ri.jar, and the commons-logging.jar to the lib directory. The exact same war file will run in the JWSDP tomcat instance, but when I try to run it in another tomcat instance I get this error in my log file:
    javax.servlet.ServletException: caught throwable during servlet initialization: java.lang.NoClassDefFoundError: javax/xml/rpc/JAXRPCException
         at com.sun.xml.rpc.server.http.JAXRPCServlet.init(JAXRPCServlet.java:48)
         at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:916)
         at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:653)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
         at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
         at java.lang.Thread.run(Thread.java:536)
    JAXRPCException is in the jaxrpc-api.jar file which is in my lib directory. Is the jaxrpc refference implementation non-portable? Has anyone else had any sucesses?

    oops, I just learned that tomcat only reads javax.* packages in the common lib or lib directory, not from the webapps. I guess for security reasons. Placing the jaxrpc-api.jar and jaxm-api.jar into the common lib and adding the ri's for each to the webapps along with the common-logging.jar fixed it.

  • JAX-RPC and non-primitive data types

    Hello all!
    I am using JWSDP v1.3 and i have a problem using non-primitive data types as return types for my operations.
    Consider the helloservice example of the JWSDP1.3 tutorial. Now suppose that instead of having the simple operation sayHello() that returns a String, we execute a query on a database, get some ResultSetMetaData and we want these Metadata to be the return type of our operation. I.e. have the operation
    public ResultSetMetaData sayHello()
    instead of the
    public String sayHello()
    of the tutorial.
    When trying to build the service i get the following error which is normal, because ResultSetMetaData is not a supported JAX-RPC type.
    run-wscompile: [echo] Running wscompile: [echo] C:\jwsdp\apache-ant\../jaxrpc/bin/wscompile.bat -define -d build - nd build -classpath build config-interface.xml -model build/model. gz [exec] error: invalid type for JAX-RPC structure: java.sql.ResultSetMetaData [exec] Result: 1
    Is there any way to define an operation like this? Can i specify somehow ResultSetMetaData as a supported-type?
    I hope someone can give me some advice on it, because i have lost one evening trying to figure it out myself :)
    Regards,
    Kostas

    Courtesy links to crossposts so people don't waste their time answering a question which has already been answered
    http://forum.java.sun.com/thread.jsp?thread=482875&forum=59&message=2253704
    http://forum.java.sun.com/thread.jsp?thread=482873&forum=331&message=2253699

Maybe you are looking for

  • How do I authorize my computer? I can not find the "Authorize This Computer" option anywhere.

    PLEASE READ ALL EMAIL. ANYONE THAT CAN HELP WOULD BE GREATLY APPRECIATED. As you read through the emails, you will see that "C" the customer service person responds the same way. All the emails are from the same thread.  I would reply to his email, h

  • Open more one report in devleoper 6i

    Hi every one if I want open report also open another one "the first still open" in developer 6i how this???? thanks in advance

  • Oracle ERP

    Except "Purchase Price Variance" report, please advice where else I can find the PO price vs. Std cost price in Oracle ERP. My next question is how to save reports generated from Oracle ERP as excel files. Thanks for your help.

  • Apple monitor not recognizing keyboard

    My 7 day old Apple 23" monitor is not recognizing my 7 day old Apple keyboard (hardwired, not wireless). I am using a MacBook Air. All was fine until last night. Suggestions? Thanks! Elizabeth

  • Can't get videos to play in iPod.

    I used Quicktime Pro 7 to convert videos of other formats to the mpeg-4 (.mp4) and the ipod .m4u format, both of which should work as they are the formats supported. However, I get a blank white screen when I try to play the videos on the ipod, altho