Please tell me what can I do to get this running? /// The Client: ///
public class MySOAPClient { /** Creates new Class */ public MySOAPClient(){ } public static void main(String args[]) throws Exception { if (args.length != 1) { System.err.println ("Usage: java " + MySOAPClient.class.getName() + " Currency"); System.exit (1); } String encodingStyleURI = "http://schemas.xmlsoap.org/soap/encoding/"; URL url = new URL ("http://localhost:8080/soap/servlet/rpcrouter"); String code = "1.11356179"; String currency = args[0]; Vector params = new Vector(0); params.addElement(new Parameter("sCustCode", String.class, code, "http://schemas.xmlsoap.org/soap/encoding/")); params.addElement(new Parameter("sCurrency", Long.class, currency, "http://schemas.xmlsoap.org/soap/encoding/")); SOAPContext ctx = new SOAPContext(); ctx.setRootPart("Context-Type", "text/xml"); Header hdr = new Header(); //Build the call Call call = new Call("urn:GetCustCode", "getCustomerId", params, hdr, encodingStyleURI, ctx); Response resp = null; try { resp = call.invoke(url, "" ); SOAPContext cont = resp.getSOAPContext(); } catch (SOAPException e) { System.out.println("MySOAPClient.java - Error: call.invoke()!"); System.err.println("Caught SOAPException (" + e.getFaultCode() + "): " + e.getMessage()); return; } //Check Response if(resp.generatedFault()) { System.out.println("generatedFault = true! "); Fault fault = resp.getFault(); System.out.println("Error occured!"); System.out.println("Fault code was: " + fault.getFaultCode()); System.out.println("Fault string was: " + fault.getFaultString()); } else { System.out.println("generatedFault = false! "); Parameter result = resp.getReturnValue(); } } } /// The Server: /// public class Listener extends HttpServlet { String sSOAPRes3 = null; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { System.out.println("I'm in!"); GetCustByMsisdnHome custHome = null; String sResp = null; String sResp2 = null; // Get a naming context InitialContext jndiContext = new InitialContext(); // Get a reference to the Interest Bean Object ref = jndiContext.lookup("GetCustByMsisdn"); // Get a reference from this to the Bean's Home interface custHome = (GetCustByMsisdnHome) PortableRemoteObject.narrow(ref, GetCustByMsisdnHome.class); // Create an GetCustByMsisdn object from the Home interface GetCustByMsisdn bean = custHome.create(); System.out.println("Bean instance created!"); long t = 7; String z = "1.11341678"; sResp2 = bean.getCustomerId(z, t); sSOAPRes3 = "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" " + " SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">" + " <SOAP-ENV:Body> " + " <ns1:getCustomerIdResponse xmlns:ns1=\"urn:GetCustCode\" SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">" + sResp2 + " </ns1:getCustomerIdResponse> " + " </SOAP-ENV:Body> " + "</SOAP-ENV:Envelope>"; bean.remove(); response.setContentType("text/xml"); PrintWriter out = response.getWriter(); out.write(sSOAPRes3); out.flush(); } catch(Exception e) { System.out.println("Listener.java - Error: "+e.getMessage()); } } } /// The Bean: /// public class GetCustByMsisdnBean implements SessionBean { public GetCustByMsisdnBean() { } public String getCustomerId(String sCustCode, long sCurrency) throws Exception { String sReply1 = null; String sReply2 = null; String sReply3 = null; Connection con = null; try { InitialContext ic = new InitialContext(); DataSource ds = (DataSource)ic.lookup("java:/BSCS_DB"); con = ds.getConnection(); String sSQL = "select c.customer_id, cc.ccline2 from customer_all c, ccontact_all cc where c.custcode = ? and c.fc_id = ? and c.customer_id = cc.customer_id "; PreparedStatement prepStmt = con.prepareStatement(sSQL); prepStmt.setString(1, sCustCode); prepStmt.setLong(2, sCurrency); for(ResultSet rs = prepStmt.executeQuery(); rs.next();) { sReply1 = rs.getString(1); sReply2 = rs.getString(2); sReply3 = sReply1 + " - " + sReply2; } prepStmt.close(); } catch(Exception e) { System.out.println("GetCustByMsisdn.java: getCustomerId() Error!: " + e.getMessage()); } finally { con.close(); System.out.println("Result: " + sReply3); } return sReply3; } public void ejbCreate() { } public void ejbPostCreate() { } public void ejbRemove() { } public void ejbActivate() { } public void ejbPassivate() { } public void setSessionContext(SessionContext sessioncontext) { } } ---------------------- As you can see I'm calling a service that is implemented in a bean hosted by JBOSS. Can I do the SOAP request like this? What am I doing wrong? ------------------------- Tiago Fernandes Thomaz -----Original Message----- From: Beau Anderson [mailto:[EMAIL PROTECTED]] Sent: quarta-feira, 20 de Março de 2002 21:24 To: [EMAIL PROTECTED] Subject: Re: [RE: [Data Compression using Apache SOAP]] please post your code and indicate where it is placed on the server. ----- Original Message ----- From: "Tiago Fernandes Thomaz" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, March 20, 2002 12:58 PM Subject: RE: [RE: [Data Compression using Apache SOAP]] > I only have to set the method, the targetURI (which must match that of the > deployment descriptor), required input parameter values, the endpoint and > thats it? RPCrouter servlet will "guide" my request get the method return > and wrap it up in a SOAP envelope to client? Is that it? > If so, could you explain why I'm getting the following error: > > Fault code: SOAP-ENV:Server.BadTargetObjectURI > Fault string: Unable to resolve target object: package.MyClass > > Tiago Fernandes Thomaz