Jax-rpc - remote procedure output

When I call a object by jax-rpc and in the remote object an printStackTrace or System.out.prinln occurs, where does the output go ?
I am on a Linux redhat systen, jwsdp 1.2
Kind regards,
Marco Laponder

When I call a object by jax-rpc and in the remote
object an printStackTrace or System.out.prinln occurs,
where does the output go ?
I am on a Linux redhat systen, jwsdp 1.2The server's System.out

Similar Messages

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

  • Remote procedure output thru dblink

    Here is my problem
    Database A : create procedure to display some text thru dbms_output.put_line('TEST')
    Database B : use dblink to execute this package in Database A
    Can anyone explain to me that y i am unable to get the output message when i use dblink to execute the procedure ?
    thank you very much

    in other thread

  • The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Too many parameters were provided in this RPC request. The maximum is 2100

    Hello,
    I am getting a new message this morning creating a view:
    The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Too many parameters were provided in this RPC request. The maximum is 2100
    Any ideas on this?
    Thanks,
    DOm
    System Center Operations Manager 2007 / System Center Configuration Manager 2007 R2 / Forefront Client Security / Forefront Identity Manager

    Hi,
    Based on my research, this is a limitation of sql server.
    http://msdn.microsoft.com/en-us/library/ms143432.aspx
    And please refer to the below article to find a fix for this issue:
    How to fix SQL error: "Too many parameters were provided in this RPC request"
    http://blogs.msdn.com/b/emeadaxsupport/archive/2009/09/01/how-to-fix-sql-error-too-many-parameters-were-provided-in-this-rpc-request.aspx
    Regards,
    Yan Li
    Regards, Yan Li

  • The Remote Procedure Call (RPC) is unavailable when trying to remotely shutdown a computer

    Hello!
    I operate on a Windows Server 2012 R2(Which is the server for Active Directory)  and I am trying to remotely shutdown a Windows 8.1 computer(which is in the domain).
    I am using PowerShell to do this task, but after I introduce the command ( Stop-Computer -ComputerName Name) I get this error :   Stop-Computer : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
    If you could help me with this, I would appreciate.
    Thanks.

    Additional information for "Computer : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA):"
    In addition to making sure the firewall is allowing traffic (disable to test it to see if that works). YOu can check to make sure that this is allowed:
    Windows Firewall: Allow remote administration exception.
    Ensure that the remote Windows client machine is registered into DNS with one IP address. This will ensure proper DNS hostname resolution.
    Ensure that the DC has only one IP address.
    Also, make sure the following services are running on the remote Windows client and are set to automatically start at startup:
    Remote Procedure Call (RPC)
    TCP/IP NetBIOS Helper
    Windows Management Instrumentation
    Additional information:
    RPC Server unavailable Connecting Through Windows Firewall
    http://msdn.microsoft.com/en-us/library/aa389286(v=vs.85).aspx
    The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
    http://www.s-code.com/kayako/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=14
    Ace Fekay
    MVP, MCT, MCSE 2012, MCITP EA & MCTS Windows 2008/R2, Exchange 2013, 2010 EA & 2007, MCSE & MCSA 2003/2000, MCSA Messaging 2003
    Microsoft Certified Trainer
    Microsoft MVP - Directory Services
    Complete List of Technical Blogs: http://www.delawarecountycomputerconsulting.com/technicalblogs.php
    This posting is provided AS-IS with no warranties or guarantees and confers no rights.

  • WMIProviderException: An error occurred when attempting to connect to the report server remote procedure call (RPC) end point

    I am getting the following error message while trying to configure a database for a Reporting Service Server.  Both SQL Server and Reporting server are 2012 named instances.  I have 2014 instances as well on the same server.
    Exception details...
    Microsoft.ReportingServices.WmiProvider.WMIProviderException: An error occurred when attempting to connect to the report server remote procedure call (RPC) end point. Verify that the Report Server Windows service is running, and then retry the operation.
     ---> System.Runtime.InteropServices.COMException (0x800706B3): The RPC server is not listening. (Exception from HRESULT: 0x800706B3)
       --- End of inner exception stack trace ---
       at Microsoft.ReportingServices.WmiProvider.RSWmiAdmin.ThrowOnError(ManagementBaseObject mo)
       at Microsoft.ReportingServices.WmiProvider.RSWmiAdmin.GenerateDatabaseScript(String databaseName, Int32 lcid, Boolean isSharePointIntegrated, String& script)
       at ReportServicesConfigUI.WMIProvider.RSReportServerAdmin.GenerateDatabaseScript(String databaseName, Int32 lcid, Boolean isSharePointIntegrated, String& script)
    Can someone help me on this please?

    Hi Jaigi,
    According to your description, you want to change a report server database for Reporting Services. But it fails on the last step and returns a error. Right?
    In this scenario, it seems you are creating a report server database on another server via remote connection. Based on the error message, it has issues on executing the script for generating new database. Please check if you have permission to connect the
    server and create a new database. Also please check if the Reporting Services Windows services is working properly.
    If you have any question, please feel free to ask.
    Best Regards,
    Simon Hou

  • IP address of a remote client with JAX-RPC

    Hi all.
    I wrote a Web Service using JAX-RPC and I'd like to see the IP address of the machine requesting the methods exposed by the service.
    Is there any way to do this?
    Thanks
    Fabio

    I answare myself... let me know if this solution is good. tnx
    Fabio
    import javax.xml.rpc.server.*;
    import javax.xml.rpc.handler.MessageContext;
    import javax.servlet.http.HttpServletRequest;
    public class ServiceImpl implements ServiceIF, ServiceLifecycle {
         public void init(Object context) {
              ServletEndpointContext ctx = (ServletEndpointContext)context;
         public void foo() {
              MessageContext msgCtx = ctx.getMessageContext();
              HttpServletRequest req = (HttpServletRequest)msgCtx.getProperty("com.sun.xml.rpc.server.http.HttpServletRequest");
              String remoteIPAddress = req.getRemoteAddr();
    }

  • Event ID: 5014, 5004 The DFS Replication Service is stopping communication with partner / Error 1726 (The remote procedure call failed.)

    I'm replicating between two servers in two sites (Server A - Server 2012 R2 STD, Server B - Server 2008 R2) over a VPN (Sonicwall Firewall).  Though the initial replication seems to be
    happening it is very slow (the folder in question is less than 3GB).  I'm seeing these in the event viewer every few minutes:
    The DFS Replication service is stopping communication with partner PPIFTC for replication group FTC due to an error. The service will retry the connection periodically.
    Additional Information:
    Error: 1726 (The remote procedure call failed.)
    and then....
    The DFS Replication service successfully established an inbound connection with partner PPIFTC for replication group FTC.
    Here are all my troubleshooting steps (keep in mind that our VPN is going through a SonicWall <--I increased the TCP timeout to 24 hours):
    -Increased TCP Timeout to 24 hours 
    -Added the following values on both sending and receiving members and rebooted server
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    Value =DisableTaskOffload
    Type = DWORD
    Data = 1
    Value =EnableTCPChimney
    Type = DWORD
    Data = 0
    Value =EnableTCPA
    Type = DWORD
    Data = 0
    Value =EnableRSS
    Type = DWORD
    Data = 0
    ---------------------------------more troubleshooting--------------------------
    -Disabled AntiVirus on both members
    -Made sure DFSR TCP ports 135 & 5722 are open
    -Installed all hotfixes for 2008 R2 (http://support.microsoft.com/kb/968429) and rebooted
    -Ran NETSTAT –ANOBP TCP and the DFS executable results are listed below:
    Sending Member:
    [DFSRs.exe]
      TCP    10.x.x.x:53            0.0.0.0:0             
    LISTENING       1692
    [DFSRs.exe]
      TCP    10.x.x.x:54669        
    10.x.x.x:5722          TIME_WAIT       0
      TCP    10.x.x.x:54673        
    10.x.x.x:5722          ESTABLISHED     1656
     [DFSRs.exe]
      TCP    10.x.x.x:64773        
    10.x.x.x:389           ESTABLISHED     1692
    [DFSRs.exe]
      TCP    10.x.x.x:64787        
    10.x.x.x:389           ESTABLISHED     1656
     [DFSRs.exe]
      TCP    10.x.x.x:64795        
    10.x.x.x:389           ESTABLISHED     2104
    Receiving Member:
    [DFSRs.exe]
      TCP    10.x.x.x:56683        
    10.x.x.x:389           ESTABLISHED     7472
     [DFSRs.exe]
      TCP    10.x.x.x:57625        
    10.x.x.x:54886         ESTABLISHED     2808
    [DFSRs.exe]
      TCP    10.x.x.x:61759        
    10.x.x.x:57625         TIME_WAIT       0
      TCP    10.x.x.x:61760        
    10.x.x.x:57625         TIME_WAIT       0
      TCP    10.x.x.x:61763        
    10.x.x.x:57625         TIME_WAIT       0
      TCP    10.x.x.x:61764        
    10.x.x.x:57625         TIME_WAIT       0
      TCP    10.x.x.x:61770        
    10.x.x.x:57625         TIME_WAIT       0
      TCP    10.x.x.x:61771        
    10.x.x.x:57625         TIME_WAIT       0
      TCP    10.x.x.x:61774        
    10.x.x.x:57625         TIME_WAIT       0
      TCP    10.x.x.x:61775        
    10.x.x.x:57625         TIME_WAIT       0
      TCP    10.x.x.x:61776        
    10.x.x.x:57625         TIME_WAIT       0
      TCP    10.x.x.x:61777        
    10.x.x.x:57625         TIME_WAIT       0
      TCP    10.x.x.x:61778        
    10.x.x.x:57625         TIME_WAIT       0
      TCP    10.x.x.x:61779        
    10.x.x.x:57625         TIME_WAIT       0
      TCP    10.x.x.x:61784        
    10.x.x.x:52757         ESTABLISHED     7472
    [DFSRs.exe]
      TCP    10.x.x.x:63661        
    10.x.x.x:63781         ESTABLISHED     4880
    ------------------------------more troubleshooting--------------------------
    -Increased Staging to 32GB
    -Opened the ADSIedit.msc console to verify the "Authenticated Users" is set with the default READ permission on the following object:
    a. The computer object of the DFS server
    b. The DFSR-LocalSettings object under the DFS server computer object
    -Ran
    ping <var>10.x.x.x</var> -f -l 1472 and got replies back from both servers
    -AD replication is successful on all partners
    -Nslookup is working so DNS is working
    -Updated NIC drivers on both servers
    - I ran the following to set the Primary Member:
    dfsradmin Membership Set /RGName:<replication group name> /RFName:<replicated folder name> /MemName:<primary member> /IsPrimary:True
    Then Dfsrdiag Pollad /Member:<member name>
    I'm seeing these errors in the dfsr logs:
    20141014 19:28:17.746 9116 SRTR   957 [WARN] SERVER_EstablishSession Failed to establish a replicated folder session. connId:{45C8C309-4EDD-459A-A0BB-4C5FACD97D44} csId:{7AC7917F-F96F-411B-A4D8-6BB303B3C813}
    Error:
    + [Error:9051(0x235b) UpstreamTransport::EstablishSession upstreamtransport.cpp:808 9116 C The content set is not ready]
    + [Error:9051(0x235b) OutConnection::EstablishSession outconnection.cpp:532 9116 C The content set is not ready]
    + [Error:9051(0x235b) OutConnection::EstablishSession outconnection.cpp:471 9116 C The content set is not ready]
    ---------------------------------------more troubleshooting-----------------------------
    I've done a lot of research on the Internet and most of it is pointing to the same stuff I've tried.  Does anyone have any other suggestions?  Maybe I need to look somewhere
    else on the server side or firewall side? 
    I tried replicating from a 2012 R2 server to another 2012 server and am getting the same events in the event log so maybe it's not a server issue. 
    Some other things I'm wondering:
    -Could it be the speed of the NICs?  Server A is a 2012 Server that has Hyper-V installed.  NIC teaming was initially setup and since Hyper-V is installed the NIC is a "vEthernet
    (Microsoft Network Adapter Multiplexor Driver Virtual Switch) running at a speed of 10.0Gbps whereas Server B is running a single NIC at 1.0Gbps
    -Could occasional ping timeout's cause the issue?  From time to time I get a timeout but it's not as often as the events I'm seeing.  I'm getting 53ms pings.  The folder
    is only 3 GB so it shouldn't take that long to replicate but it's been days.  The schedule I have set for replication is mostly all day except for our backup times which start at 11pm-5am.  Throughout the rest of the time I have it set anywhere from
    4Mbps to 64 Kbps.  Server A is on a 5mb circuit and Server B is on a 10mb circuit. 

    I'm seeing the same errors, all servers are running 2008 R2 x64. Across multiple sites, VPN is steady and reliably.
    185 events from 12:28:21 to 12:49:25
    Events are for all five servers (one per office, five total offices, no two in the same city, across three states).
    Events are not limited to one replication group. I have quite a few replication groups, so I don't know for sure but I'm running under the reasonable assumption that none are spared.
    Reminder from original post (and also, yes, same for me), the error is: Error: 1726 (The remote procedure call failed.)
    Some way to figure out what code triggers an Event ID 5014, and what code therein specifies an Error 1726, would extremely helpful. Trying random command line/registry changes on live servers is exceptionally unappealing.
    Side note, 1726 is referenced here:
    https://support.microsoft.com/kb/976442?wa=wsignin1.0
    But it says, "This RPC connection problem may be caused by an unstable WAN connection." I don't believe this is the case for my system.
    It also says...
    For most RPC connection problems, the DFS Replication service will try to obtain the files again without logging a warning or an error in the DFS Replication log. You can capture the network trace to determine whether the cause of the problem is at the network
    layer. To examine the TCP ports that the DFS Replication service is using on replication partners, run the following command in a
    Command Prompt window:
    NETSTAT –ANOBP TCP
    This returns all open TCP connections. The connections in question are "DFSRs.exe", which the command won't let you filter for.
    Instead, I used the NETSTAT command as advertised, dumping output to info.txt:
    NETSTAT -ANOBP TCP >> X:\info.txt
    Then I opened Excel and manually opened the .TXT for the open wizard. I chose fixed-width fields based on the first row for each result, and then added a column:
    =IF(A3="Can not", "Can not obtain ownership information", IF(LEFT(A3,1) = "[", A3&B3&C3, ""))
    Dragging this down through the entire file let me see that row (Row F) as the file name. Some anomalies were present but none impacted DFSrs.exe results.
    Finally, you can sort/filter (I sorted because I like being able to see everything, should I choose to) to get just the results you need, with the partial rows removed from the result set, or bumped to the end.
    My server had 125 connections open.
    That is a staggering number of connections to review, and I feel like I'm looking for a needle in a haystack.
    I'll see if I can find anything useful out, but a better solution would be most wonderful.

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

  • JAX-RPC Asynchronous messaging

    I am attempting to create a publish / subscribe service using JAX-RPC (since remote procedure calls are needed through most of the program)... however I have not found any good descriptions / explainations on how to create the remote messaging from the publisher (server) to the consumer (client)... I know this is the JMS forum but there is not a forum dedicated to JAX or SOAP... so I figured this would be the closet one and maybe someone here has experimented with something similar... thanks

    There's a brand new forum for Java and Web services, including JAX-RPC.
    I'm sure folks there can give you a hand.
    http://forum.java.sun.com/forum.jsp?forum=331

  • What is the difference between RMI and JAX-RPC?

    Dear All
    First of all my understanding of RMI and JAX-RPC:
    RMI is JAVA only version of RPC. It can't talk to any other language.
    JAX-RPC is a part of JWSDP and if you implement your client and server with JAX-RPC, client written in any language can talk with JAX-RPC implementation.
    What else makes them different and am I right with my understanding?
    Finally, I would like to develop clients which will have a java class, say httpserver.java, which will act like a http server, listens to a http port. Now, Two such client will run in two different PC and I want to call a module from one client to another which should be accessible via my httpserver.java. For that which should be my choice RMI or JAX-RPC? Can I achive it with http get-post method, as I am expecting to read some value of variables from one client to the another.
    Say class A has variable a, aa, aaa and clas B has variable b, bb, bbb. Now I want to read the value of b, bb, bbb from class A. How do I do that when class B is listening to a http port with my httpserver.java class.
    Lastly, say B is listening to a http port and I want to send a file to B from A. How can I do that? Remember, B didn�t ask for that. How can A send a file to B when B is listening to a http port with my httpserver.java.
    With regards
    Mohammed Jubaer Arif
    Mobile: +61-0411215302
    Personal Web: http://www.geocities.com/jubairarifctg/
    Org. Web.: http://www.geocities.com/halimschamber/

    simply put, RMI allows you to (semi) transparently treat remote objects as if they were local, and your distributed application can be written (more or less) like a "normal" java app. Sockets just give you a "raw" connection to work with, and you get to build up your application from that.
    I hope that helped
    Lee

  • 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

  • EJB 3.0 and JAX-RPC 1.1 Not Working Together

    I've came across a strange behavior when building a JAX-RPC 1.1 service in WebLogic 10 on top of a EJB 3.0 bean:
    Business Interface
    @Remote
    @WebService(targetNamespace="http://coronelado.sf.net")
    public interface AuthenticationBO {
      boolean login(String email, String password) throws AuthenticationBOException;
    Bean
    @Stateless(name="AuthenticationBO")
    @TransactionManagement(BEAN)
    @WLHttpTransport(contextPath="coronelado-service", serviceUri="AuthenticationBOService")
    @WebService(endpointInterface="net.sf.coronelado.business.AuthenticationBO")
    public class AuthenticationBOBean implements AuthenticationBO {
    ejb-jar.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" version="3.0">
      <enterprise-beans>
        <session>
          <ejb-name>AuthenticationBO</ejb-name>
          <service-endpoint>net.sf.coronelado.business.AuthenticationBO</service-endpoint>
        </session>
      </enterprise-beans>
    </ejb-jar>After I deploy the bean, two web services, not one, are listed in the console: AuthenticationBOService and AuthenticationBOBeanService (a duplicate), and the following error message is printed:
    [JAM] Warning: failed to resolve class net.sf.coronelado.business.AuthenticationBOBeanAm I missing something here?

    http://fernandoribeiro.eti.br/2007/06/27/bug-in-weblogic-10-web-services/

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

Maybe you are looking for