The fault code "Server.BadTargetObjectURI" may be a little misleading. To get this error, the URI has already been matched to a URI you used to deploy a service, i.e. the Apache SOAP server code has already located the deployment descriptor you specified in deployment.
My inclination is to believe the error means that Apache SOAP could not load the class implementing the service. Do not assume that if the class is in some classpath that it can be loaded, since the newer servlet specs are very specific about how the class loaders should be chained. I recommend you put all classes implementing your services or used by your services into the directory for the Apache SOAP web app. I don't know about your WebSphere environment, but on my Tomcat implementation, this means j:\jakarta-tomcat-4.0.1\webapps\soap\WEB-INF\lib or j:\jakarta-tomcat-4.0.1\webapps\soap\WEB-INF\classes. Further, it may be that you must restart something (the web app or the whole server) to get the classes to load. Scott Nichol ----- Original Message ----- From: <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, June 13, 2002 10:57 AM Subject: Unable to resolve target object... > Using IBM Websphere 4.0 with Apache SOAP....Trying to make a soap call from > a java class and I'm getting this error...I'm a relative newbie with > websphere so any hints on where to look or some sort of "checklist" would > be greatly appreciated > Generated fault: > Fault Code = SOAP-ENV:Server.BadTargetObjectURI > Fault String = Unable to resolve target object: > com.mmm.mes.API.MesItemMasterApi > I assume that I don't have something setup correctly with regards to my > URI...the uri (and other stuff) that I'm sending in my call is as > follows... > String lsURI = new String( > "http://tempuri.org/com.mmm.mes.API.MesItemMasterApi"); > call.setTargetObjectURI(lsURI); > call.setMethodName("getItemMaster"); > > //Set the encoding style > call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC); > > Vector params = new Vector(); > > //Add the parameter > params.addElement(new Parameter("sXML", String.class > ,lsSendXML,Constants.NS_URI_SOAP_ENC)); > call.setParams(params); > SOAPHTTPConnection httpconn = new SOAPHTTPConnection(); > httpconn.setProxyPort(8080); > call.setSOAPTransport(httpconn); > > // Invoke the call. > Response resp; > > try > { > String lsAction = new String(""); > resp = call.invoke(url,lsAction); > > > Here is the wsdl stuff...*Note I combined the -service and -binding wsdl > files since I have MS clients that may be using this... > <?xml version="1.0" encoding="UTF-8"?> > <definitions name="MesItemMasterApiService" > targetNamespace= > "http://localhost:8080/MesAPIsWebServices/wsdl/MesItemMasterApi-service.wsdl" > > > xmlns="http://schemas.xmlsoap.org/wsdl/" > xmlns:tns= > "http://localhost:8080/MesAPIsWebServices/wsdl/MesItemMasterApi-service.wsdl" > > > xmlns:binding= > "http://www.mesitemmasterapi.com/definitions/MesItemMasterApiRemoteInterface" > > > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > <message name="getItemMasterRequest"> > <part name="sXML" type="xsd:string"/> > </message> > <message name="getItemMasterResponse"> > <part name="result" type="xsd:string"/> > </message> > <message name="getAllItemIDsRequest"> > <part name="sXML" type="xsd:string"/> > </message> > <message name="getAllItemIDsResponse"> > <part name="result" type="xsd:string"/> > </message> > <message name="updateItemMasterRequest"> > <part name="sXML" type="xsd:string"/> > </message> > <message name="updateItemMasterResponse"> > <part name="result" type="xsd:string"/> > </message> > <portType name="MesItemMasterApiJavaPortType"> > <operation name="getItemMaster"> > <input name="getItemMasterRequest" message="tns:getItemMasterRequest" > /> > <output name="getItemMasterResponse" message= > "tns:getItemMasterResponse"/> > </operation> > <operation name="getAllItemIDs"> > <input name="getAllItemIDsRequest" message="tns:getAllItemIDsRequest" > /> > <output name="getAllItemIDsResponse" message= > "tns:getAllItemIDsResponse"/> > </operation> > <operation name="updateItemMaster"> > <input name="updateItemMasterRequest" message= > "tns:updateItemMasterRequest"/> > <output name="updateItemMasterResponse" message= > "tns:updateItemMasterResponse"/> > </operation> > </portType> > <binding name="MesItemMasterApiBinding" type= > "tns:MesItemMasterApiJavaPortType"> > <soap:binding style="rpc" transport= > "http://schemas.xmlsoap.org/soap/http"/> > <operation name="getItemMaster"> > <soap:operation soapAction="" style="rpc"/> > <input name="getItemMasterRequest"> > <soap:body use="encoded" encodingStyle= > "http://schemas.xmlsoap.org/soap/encoding/" namespace= > "http://tempuri.org/com.mmm.mes.API.MesItemMasterApi"/> > </input> > <output name="getItemMasterResponse"> > <soap:body use="encoded" encodingStyle= > "http://schemas.xmlsoap.org/soap/encoding/" namespace= > "http://tempuri.org/com.mmm.mes.API.MesItemMasterApi"/> > </output> > </operation> > <operation name="getAllItemIDs"> > <soap:operation soapAction="" style="rpc"/> > <input name="getAllItemIDsRequest"> > <soap:body use="encoded" encodingStyle= > "http://schemas.xmlsoap.org/soap/encoding/" namespace= > "http://tempuri.org/com.mmm.mes.API.MesItemMasterApi"/> > </input> > <output name="getAllItemIDsResponse"> > <soap:body use="encoded" encodingStyle= > "http://schemas.xmlsoap.org/soap/encoding/" namespace= > "http://tempuri.org/com.mmm.mes.API.MesItemMasterApi"/> > </output> > </operation> > <operation name="updateItemMaster"> > <soap:operation soapAction="" style="rpc"/> > <input name="updateItemMasterRequest"> > <soap:body use="encoded" encodingStyle= > "http://schemas.xmlsoap.org/soap/encoding/" namespace= > "http://tempuri.org/com.mmm.mes.API.MesItemMasterApi"/> > </input> > <output name="updateItemMasterResponse"> > <soap:body use="encoded" encodingStyle= > "http://schemas.xmlsoap.org/soap/encoding/" namespace= > "http://tempuri.org/com.mmm.mes.API.MesItemMasterApi"/> > </output> > </operation> > </binding> > <service name="MesItemMasterApiService"> > <port name="tns:MesItemMasterApiPort" binding= > "tns:MesItemMasterApiBinding"> > <soap:address location= > "http://localhost:8080/MesAPIsWebServices/servlet/rpcrouter"/> > </port> > </service> > </definitions> > > > > >