JAX-RPC whitepaper available on dev2dev

The Java API for XML-based remote procedure calls (JAX-RPC) simplifies
the process of building Web services that incorporate XML-based RPC.
Rajesh Sumra looks at how developers can use JAX-RPC to implement and
call SOAP-based Web services described by the Web Services Description
Language (WSDL) on the BEA WebLogic Platform.
http://dev2dev.bea.com/articles/Sumra.jsp

et al
http://dev2dev.bea.com/technologies/webservices/index.jsp
Bruce Stephens wrote:
>
The Java API for XML-based remote procedure calls (JAX-RPC) simplifies
the process of building Web services that incorporate XML-based RPC.
Rajesh Sumra looks at how developers can use JAX-RPC to implement and
call SOAP-based Web services described by the Web Services Description
Language (WSDL) on the BEA WebLogic Platform.
http://dev2dev.bea.com/articles/Sumra.jsp

Similar Messages

  • Want to run jax-rpc sample from sun's webservice tutorial in the wls7

    hello
    i want to deploy the jax-rpc sample that come with the sun's tutorial(hello) and
    can works well in the tomcat into wls7,but the wls tell me that some files can't
    be found,then i add enough jar files under the jwsdp to the lib directory of the
    war package till the deployment success,but when i invoke it in the browser,the
    browser tell me "no jax-rpc context available",why?and the same package even can't
    be deployed in the jboss,the jboss always complain that the "class not found",but
    i am sure the classes is included in the lib jar files,why?who can help me?
    thank you

    Hello,
    Could you post a stack trace?
    Thanks,
    Bruce
    zbcong wrote:
    >
    hello
    i want to deploy the jax-rpc sample that come with the sun's tutorial(hello) and
    can works well in the tomcat into wls7,but the wls tell me that some files can't
    be found,then i add enough jar files under the jwsdp to the lib directory of the
    war package till the deployment success,but when i invoke it in the browser,the
    browser tell me "no jax-rpc context available",why?and the same package even can't
    be deployed in the jboss,the jboss always complain that the "class not found",but
    i am sure the classes is included in the lib jar files,why?who can help me?
    thank you

  • No JAX-RPC Context Information Available

    Hello
    I am new to java and webservice.
    I am using jdk1.4.2 and jwsdp1.2 and tomcat 4.1.27
    I have problems in running ant so i manually ran wscompile, wsdeploy to create and deploy a war file. when i put the war file in the webapps directory of tomcat(attached with jwsdp) it unpacks and when i browse the url http://localhost:8080/hello-jaxrpc/hello i get the error
    "No JAX-RPC Context Information Available"
    When i tried to deploy the war file in tomcat4.1.27 standalone server it unpacked the file but when i browsed the url it returned 404.
    What could be the problem? Please help
    Thanks in advance
    Shiva

    I would encourage you to use the tomcat which comes
    packaged with jwsdp1.2
    I seems to me that context name that you are using
    in your URL does not match the context used by your
    desired endpoint. So you need to ensure that thisis
    correct.

  • Weblogic 8, no jax-rpc context info available error

    i've developed some web services using the jwsdp 1.3. they deploy and run fine in jwsdp 1.3 and also in jboss 3.2. i deployed the same web services in weblogic 8.1 with no problems. when i access the web service and the wsdl, i get the following error:
    Web Services
    No JAX-RPC context information available.
    my 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="urn:Foo"
        typeNamespaceBase="urn:Foo"
        urlPatternBase="/ws">
        <endpoint
            name="JobService"
            displayName="WorkPoint Job Service"
            description="WorkPoint Job Service for API calls"
            interface="com.workpoint.webservices.JobServiceIF"
            wsdl="/WEB-INF/JobService.wsdl"
            model="/WEB-INF/JobService.xml.gz"
            implementation="com.workpoint.webservices.JobServiceImpl"/>
        <endpoint
            name="ServerConfigService"
            displayName="WorkPoint ServerConfig Service"
            description="WorkPoint ServerConfig Service for API calls"
            interface="com.workpoint.webservices.ServerConfigServiceIF"
            wsdl="/WEB-INF/ServerConfigService.wsdl"
            model="/WEB-INF/ServerConfigService.xml.gz"
            implementation="com.workpoint.webservices.ServerConfigServiceImpl"/>
        <endpoint
            name="WorkItemService"
            displayName="WorkPoint Job Service"
            description="WorkPoint Job Service for API calls"
            interface="com.workpoint.webservices.WorkItemServiceIF"
            wsdl="/WEB-INF/WorkItemService.wsdl"
            model="/WEB-INF/WorkItemService.xml.gz"
            implementation="com.workpoint.webservices.WorkItemServiceImpl"/>
        <endpointMapping
            endpointName="JobService"
            urlPattern="/JobService"/>
        <endpointMapping
            endpointName="ServerConfigService"
            urlPattern="/ServerConfigService"/>
        <endpointMapping
            endpointName="WorkItemService"
            urlPattern="/WorkItemService"/>
    </webServices>any ideas on what is going on? also, what is the urlPatternBase used for?

    I had this problem when I created custom web services : some classes where not generated in the right folder (ie package name).
    Check the content of the generated war to see if all the necessary classes and files are in it and in the right place.

  • Using JAX-RPC handlers to proxy web service traffic

    Hi,
    I want to use JAX-RPC handlers to proxy web service traffic. In some instances the handler should modifiy / verify the message before forwarding the request to the remote web service end-point. Hence, the handler should forward the call by invoking the remote web service. In some cases the result from invoking the remove service should be post-processed by another proxy handler. To ensure that the result from invoking the remote service is available for post-processing I assume that the handler invoking the remote service must add the response message to the message context ( e g setProperty method) in the handler. Is this correctly understood?
    I would like to understand that this is a technically feasible and reasonable approach of using JAX-RPC. I'd really appreciate some feedback here.
    Many thanks,
    Tom

    Hi Eric,
    Thanks for your response. we are trying to access WSRR( manages end point urls for 7 different environments) and generate the end point dynamically at the design time. As we figured out WSRR is not compatible with OSB we are trying to implement these client side (OSB Proxy service) handlers which would get the dynamic endpoint depending on the environment used. I was able to create the handlers for this and set the jar in the classpath but the client service which should be using these handlers have to have these handlers defined in the deployment descriptor(web.xml) which am unable to see with a OSB project.
    Will there be a deployment descriptor(web.xml/webservices.xml) associated with Proxy services on OSB? Or Is there any other way to add custom JAX-RPC Handlers to a proxy service? Or is there any way to connect to WSRR directly?
    Thanks,
    Swetha

  • Calling One Jax RPC Web Service from another in Oracle AS 10.1.3

    We have a number of services residing in the same Oracle 10.1.3 app server container. These are deployed as Jax RPC Web Services
    I am trying to figure out what are the different options to have once web service invoke an operation on another (without directly linking to the Java code). The reason we want to keep separation as far as possible is that these services may later migrate to different app servers and in the spirit of SOA all we want to change when a service migrates is address and would like everything else to remain the same.
    So for example, if Web Service A needs to invoke an operation X in web service B,
    One way to do this seems to be to generate a proxy for web service B, include the proxy in Web Service A and then simply do B.X() from Web Service A.
    Is this is the best way to do it ?
    Are there other alternative approaches available ? Such as using the built in ESB features of Oracle App Server 10.1.3?
    Any pointers will be greatly appreciated.
    Thanks
    RR

    Found document of 10.1.3.1.0 how to Creating a Custom Identity Service Plug-in
    Oracle® BPEL Process Manager Administrator's Guide
    10g (10.1.3.1.0)
    Part Number B28982-03
    http://download-west.oracle.com/docs/cd/B31017_01/integrate.1013/b28982/plugin.htm
    But may be no help.

  • JAX-RPC: Exception

    Hello there
    I am using currently SUN's Webservice Development Kit 1.4 and try to realise a JAX-RPC "rpc/encoded" webservice.
    My applicatio is currently running if I am using a static client (stubs geenerated by wscompile). If am going forward to use a dynamic proxy client, I am getting a strange exception during the deserialization of the xml data on the client: "trailing block elements must have an id attribute". See also stack trace at the end of the messsage.
    As far as I understand is that it must somewthing be with the "ArrayList" or arrays which I am using in my JavaBean which I sent from the server to the client. Here my extract from my JavaBean:
    public class Article
         long id;
         Date date;
         String category;
         String title="";
         String lead="";
         List texts;
    }If I am taking out the member "List texts" then it will work correctly. The list contains only Strings. I tried also to use String[] array, but this didn't help either.
    So here, my questions perhaps someone has some ideas what I did wrong.
    - Why does it work with the stastic client but not with the dynamic proxy?
    - Does anybody know an example on the net where in JavaBeans Lists or Arrays has been used?
    - Anybody an idea why this error appears? Did I something wrong?
    Thank you in advance
    Mark Egloff
    trailing block elements must have an id attribute
         at com.sun.xml.rpc.encoding.SOAPDeserializationContext.deserializeMultiRefObjects(SOAPDeserializationContext.java:81)
         at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:226)
         at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:80)
         at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:489)
         at com.sun.xml.rpc.client.dii.CallInvocationHandler.doCall(CallInvocationHandler.java:122)
         at com.sun.xml.rpc.client.dii.CallInvocationHandler.invoke(CallInvocationHandler.java:86)
         at $Proxy0.getArticle(Unknown Source)
         at tagesanzeiger.client.ManagerDynamicClient.main(ManagerDynamicClient.java:43)

    Thanks for your answer... regarding the support of "List" Types, you can get a list of supportet types from here http://java.sun.com/webservices/docs/1.3/tutorial/doc/JAXRPC2.html#wp79865 As you see "list" is supported. The problem for me is that I not use directly the list as parameter from the interface, rather than this it is used "internally" in my JavaBean. I found how to declare additional types here:https://jax-rpc.dev.java.net/whitepaper/1.1/index-part1.html#3.5.1 i.e. in your config-interface.xml for the wscompile server:
    <typeMappingRegistry>
         <additionalTypes>
              <class name="tagesanzeiger.data.Media"/>
         </additionalTypes>
    </typeMappingRegistry>This works for the serialization later on the serverside, but the client then claims that it has no serializer. I have read somewehere that the client also supports declarative serialization of custom types, bt I did not find any example. I tried also prorgrammatically, here a hint:
    http://users.skynet.be/pascalbotte/rcx-ws-doc/seiadvanced.htm
    But there is no full example of custom serializer, so I tried to use the sun serializer:
    com.sun.xml.rpc.encoding.ValueTypeSerializer
    com.sun.xml.rpc.encoding.ObjectArraySerializerbut this ended in a NullPointerException.....
    - so has anybody out there a working example with complex types in a JavaBean?
    - has anyone an example of customserializer.?
    Regarding books, I have one from the Sun " Java Web Services Architecture" and one from Wiley "Developing Java Web Services", but both do not show how to use the cutom serializers nor declarive options at the client side....So I hope somenone has somewhere a working example...please...
    Thanks
    Mark

  • 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

  • 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.

  • Calling One Jax/rpc web service from another.

    We have a number of services residing in the same Oracle 10.1.3 app server container. These are deployed as Jax RPC Web Services
    I am trying to figure out what are the different options to have once web service invoke an operation on another (without directly linking to the Java code). The reason we want to keep separation as far as possible is that these services may later migrate to different app servers and in the spirit of SOA all we want to change when a service migrates is address and would like everything else to remain the same.
    So for example, if Web Service A needs to invoke an operation X in web service B,
    One way to do this seems to be to generate a proxy for web service B, include the proxy in Web Service A and then simply do B.X() from Web Service A.
    Is this is the best way to do it ?
    Are there other alternative approaches available ? Such as using the built in ESB features of Oracle App Server 10.1.3?
    Any pointers will be greatly appreciated.
    Thanks
    RR

    Hi all,
    I've managed to get this working by using the following property settings:
    System.getProperties().setProperty("http.proxyHost", "Proxy_Hostname");
    System.getProperties().setProperty("http.proxyPort", "8080");
    System.getProperties().setProperty("http.nonProxyHosts", "localhost,hostbox09");
    And solving the authentication problem using this property setting on the java cmd line:
    -Dweblogic.net.proxyAuthenticatorClassName=com.mycompany.MyProxyAuthenticator
    This class is an impl class of weblogic.common.ProxyAuthenticator interface.
    The other thing to note is that MyProxyAuthenticator needs to be in the server pre_classpath.
    Then I just call JAX-RPC or JAX-WS web service client calls as normal.
    Regards,
    Paul

  • J2EE Web services and JAX-RPC

    Hello..
    While working with J2EE web services using JDeveloper and OC4J, I noticed that it really doesn't confirm to Sun's JAX-RPC standard. The Web Service interface class does not extend the "Remote" and all methods don't throw "RemoteException" as mandated by JAX-RPC standard.
    I have few questions:
    (1) Are the OC4J J2EE web services completey different from JAX-RPC based web services.??
    (2) Does Oracle have any implementation of JAX-RPC??
    (3) Is Sun the only one promoting and implementing the JAX-RPC standard? Or are there other players?
    thanks...

    (1) Are the OC4J J2EE web services completey different from JAX-RPC based web services.??
    OC4J J2EE Web Services originate from Oracle/Apache SOAP with several differences:
    a. A model where each type of implementation gets a specific servlet (e.g. one for EJB's, one for PL/SQL, one for stateless and stateful Java classes. Architecturally, you can see the picture here:
    http://otn.oracle.com/docs/products/ias/doc_library/903doc_otn/generic.903/b10004/orawebservices.htm#1024808
    (scroll down a half page for the picture)
    b. The packaging of the Web services rather than using the Apache SOAP registration mechanism uses something closer to JSR 109 (also known as Web Services for J2EE, part of J2EE 1.4 with JAX-RPC, SAAJ [SOAP API forAttachments in Java] and JAXP [Java API for XML Parsing]), where the Web service is packaged as an ordinary ear file for deployment.
    Oracle built this implementation by extrapolating from the JAX-RPC documentation that was available last year before it was a final specification in an effort to release a production quality Web services implementation that was aligned with JAX-RPC. It has been through two releases - Oracle9iAS 9.02 and Oracle9iAS 9.0.3 and is now being evolved to JAX-RPC as we move to J2EE 1.4.
    (2) Does Oracle have any implementation of JAX-RPC??
    We are planning to release a JAX-RPC implementation in the new year (I don't have specific dates yet) on OC4J. The production implementation of this will be as seamless a migration as possible from the existing implementation. Oracle9i JDeveloper will also add support for JAX-RPC as a 3rd option in its list of choices available. You can get a sense of how such a migration would work by running the Web services wizard in JDev for Apache SOAP and then, in a separate project, running it for Oracle9iAS J2EE Web Services - imagine there being another option for JAX-RPC. The work to migrate should be as simple as running a wizard or command line utility (known as the Web Services Assembler tool in Oracle9iAS).
    (3) Is Sun the only one promoting and implementing the JAX-RPC standard? Or are there other players?
    Pretty much every one in the Java side of industry will be implementing JAX-RPC. The important time to note is when J2EE 1.4 is released ... sometime in the new year ... I believe around March but may be mistaken. Part of J2EE 1.4 is required support for JAX-RPC, SAAJ, Web Services for J2EE etc etc. This will standardize the implementation of Web services. Oracle, like others in the industry, supports the standard protocols, (SOAP), interfaces (WSDL) and registries (UDDI) - what J2EE 1.4 does is standardize the packaging, deployment and implementation (the wrappers generated by the tooling).
    My guess is that around JavaOne (June 2003) there will be a rash of announcements from J2EE vendors announcing support of JAX-RPC and J2EE 1.4 (or early implementations) as we will be in the same race that happened in 2001/2002 when J2EE 1.3 was the spec to announce implementations around.
    Mike.

  • 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

  • JDeveloper 10.1.3 JAX-RPC and JDeveloper 11g

    I'm working on a J2SE Aplicattion using Jdeveloper 10.1.3.
    In JDeveloper 10.1.3 JAX-RPC works fine but I need works with Jdeveloper 11 and I have two errors
    javax.xml.rpc.ServiceException: Provider com.sun.xml.rpc.client.ServiceFactoryImpl not found
    or
    Jaxrpc 1.1 method is not supported.
    What can I do?
    Thanks,

    Hello,
    JDeveloper 11 does not support JAX-RPC 1.1.
    You can find some migration steps here:
    http://www.approach.nl/2009/01/migrating-web-services-from-jdeveloper-10g-to-11g/
    I think there is a Web Service Migration Guide available from the JDeveloper 11 help.
    You really just need to redefine the service interfaces, if you are trying to run proxies generated with 10g, you'll probably need to regenerate them.
    Hope this helps

  • JAX-RPC on OC4J (Migrating from TOMCAT to OC4J) Problems

    I am attempting to compile and build a simple web service
    to using wsdeploy from Sun's JWSDP1.2. It works fine on Tomcat but when I try to deploy it to OC4J. I get the following error:
    7/23/03 11:58 AM Internal error in HttpServer
    java.lang.ClassCastException: com.evermind.naming.ContextClassLoader
         at com.sun.xml.rpc.server.http.JAXRPCContextListener.contextInitialized(JAXRPCContextListener.java:52)
         at com.evermind.server.http.HttpApplication.initDynamic(HttpApplication.java:583)
         at com.evermind.server.http.HttpApplication.<init>(HttpApplication.java:374)
         at com.evermind.server.Application.getHttpApplication(Application.java:657)
         at com.evermind.server.http.HttpServer.getHttpApplication(HttpServer.java:663)
         at com.evermind.server.http.HttpSite.getApplication(HttpSite.java:387)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:378)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:243)
         at com.evermind.util.ThreadPoolThread.run(ThreadPoolThread.java:64)7/23/03 3:53 PM 9.0.2.0.0
    I've come to notice that Oracle's WebServicesAssembler doesn't use com.sun.xml.rpc.server.http.JAXRPCContextListener but instead uses something else. When the JAXRPCContextListener starts to initialize it trys to perform the following operation:
    classLoader = (URLClassLoader)Thread.currentThread().getContextClassLoader();
    Is there any way to remedy this?? Or is there anything I can do to get this to work??
    Thanks
    Mike

    Have you deployed JAX-RPC onto OC4J? We currently do not have JAX-RPC available on OC4J.
    Mike.

  • How to go from a .wsdl to .war file to deploy on Tomcat ? (using jax-rpc?)

    I have created a .wsdl file using XMLSpy and I want to deploy the service on tomcat. I have been unsuccessful in using the "wscompile -import" option.
    Does anyone know how to cross-compile a .wsdl file into a .war so it can be deployed on tomcat? If there is another way other than a .war file, that is fine too...
    Currently, I am using WSDL2Java tool by Apache Axis. I take my .wsdl file use the WSDL2Java tool to get the java files, Then I run the java files through wscompile, wsdeploy etc.... the problem with this approach is that the .wsdl file produced by the wsdeploy does not support the document encoding (everything switched to rpc) and no literal either (I think).
    If anyone has figured out a better way of going from .wsdl to java or .war or tomcat.. please let me know.. I'm running out of options...
    Thank you !

    The link worked correctly for me. You can also refer to a recently published whitepaper at
    https://jax-rpc.dev.java.net/whitepaper/1.1/index-part1.html. Scenario 5 in second part (https://jax-rpc.dev.java.net/whitepaper/1.1/index-part2.html#Scenario5) of the whitepaper describes how to achieve your scenario.
    Post your JAX-RPC related questions to [email protected] for a quicker resolution.
    Send an email to [email protected] to subscribe to the alias.
    Send an mail to [email protected] for a complete list of help commands.
    Thanks for your interest in JAX-RPC.
    Regards,
    -Arun

Maybe you are looking for

  • One iMac cannot login to network accounts

    We have a small network with Lion (10.7.5) Server running on a Mac Pro and a variety of 8 iMacs and Mac minis that use the server for file sharing and network accounts. The client Macs are running a mix of Mountain Lion (10.8) and Mavericks (10.9). T

  • Need Oracle personal edition copy

    So that we may better diagnose problems, please provide the following information. - Server name - Filename - Date/Time - Browser + Version - O/S + Version - Error Msg Hi, I've tried to download the Oracle 8i Personal Edition, so I went to the site a

  • Search object

    We have a requirement to select data from different CRM tables based on select options.  I added the fields for selection to the structure of search object BTQuery1o and also copied class CL_CRM_QUERY1O_RUN_BTIL to a z class.  I redefined the methods

  • Tree column in AdvacedDataGrid component

    Hi, is it possible to define the column in which the tree is displayed? I need the tree in the second column. I always get the tree in the first column of the grid. This can't be so hard to change. I saw this feature in the treegrid implementation in

  • Photoshop .MP4 misidentified by Mtn Lion as app

    I searched for this but haven't found a help link. I hope I'm not repeating the question.... System: Mac / Mountain Lion / PS CS6 - I output a Photoshop animation as an MP4 but when I try to play it, I get a message saying that the video file is an "