Hi Matt,
Thanks for replying to my message. Any help will be greatly appreciated.
Here's my sample client code SearchReadingList.java (pretty basic) followed by
the fault information and exception info:
import java.util.*;
import java.net.*;
import org.apache.soap.*;
import org.apache.soap.encoding.*;
import org.apache.soap.encoding.soapenc.*;
import org.apache.soap.rpc.*;
public class SearchReadingList
{
public static void main(String[] args) throws Exception
{
// Address of SOAP router
URL url=new URL(args[0]);
// "Title", "Author", or "Category"
String paramName=args[1];
// Title, Author, or Category
String param=args[2];
// Build the call
Call call=new Call();
call.setSOAPMappingRegistry(new SOAPMappingRegistry());
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
call.setTargetObjectURI("urn:ReadingListManager");
call.setMethodName("searchList");
Vector params=new Vector();
params.addElement(new Parameter("parameterName", String.class,
paramName, null));
params.addElement(new Parameter("parameter", String.class, param,
null));
call.setParams(params);
System.out.println("Call=" + call.toString());
// Invoke the call to the SOAP server
Response resp=call.invoke(url,"");
// Print the returned string
boolean status=resp.generatedFault();
if (status)
{
Fault f = resp.getFault();
System.out.println(f.toString());
System.out.println("Ending abnormally....");
return;
}
Parameter ret=resp.getReturnValue();
Object value=ret.getValue();
System.out.println(value);
}
}
--------------------------------------------------------------------------------------------
When I run the client I get the following fault information back from the
server after it throws a SAXParserException which is listed down below:
E:\Whitehead\Soap-Example>java SearchReadingList
"http://calvin:8080/soap/servlet/rpcrouter" "Author" "Anton Chekhov"
Call=[Header=null] [methodName=searchList]
[targetObjectURI=urn:ReadingListManager] [encodingStyleUR
I=http://schemas.xmlsoap.org/soap/encoding/] [SOAPContext=[Parts={}]]
[Params={[[name=parameterName]
[type=class java.lang.String] [value=Author] [encodingStyleURI=null]],
[[name=parameter] [type=clas
s java.lang.String] [value=Anton Chekhov] [encodingStyleURI=null]]}]
[Attributes={}] [faultCode=SOAP-ENV:Server.BadTargetObjectURI]
[faultString=Unable to resolve target
object: null] [faultActorURI=/soap/servlet/rpcrouter] [DetailEntries=]
[FaultEntries=]
Ending abnormally....
E:\Whitehead\Soap-Example>
--------------------------------------------------------------------------------------------
This looks like it's being thrown in Tomcat:
org.xml.sax.SAXParseException: The content of elements must consist of
well-formed character data or
markup.
at
org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1067)
at
org.apache.xerces.framework.XMLDocumentScanner.reportFatalXMLError(XMLDocumentScanner.jav
a:626)
at
org.apache.xerces.framework.XMLDocumentScanner.abortMarkup(XMLDocumentScanner.java:680)
at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScan
ner.java:1250)
at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:952)
at ReadingList.read(ReadingList.java:35)
at ReadingList.<init>(ReadingList.java:22)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:
33)
at
sun.reflect.InflatableConstructorAccessorImpl.newInstance(InflatableConstructorAccessorIm
pl.java:38)
at java.lang.reflect.Constructor.newInstance(Constructor.java:273)
at java.lang.Class.newInstance0(Class.java:290)
at java.lang.Class.newInstance(Class.java:249)
at
org.apache.soap.server.http.ServerHTTPUtils.getTargetObject(ServerHTTPUtils.java:279)
at
org.apache.soap.providers.RPCJavaProvider.locate(RPCJavaProvider.java:117)
at
org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet.java:285)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava:254)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:194)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:255)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:225)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2252)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:875)
at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:952)
at java.lang.Thread.run(Thread.java:579)
=======================================================================
"Matthew J. Duftler" wrote:
> Hi David,
>
> You do not need a network connection to run the code. Some of the samples,
> however, do require a connection. Which sample are you running, and what is
> being returned? Use the TcpTunnelGui, as described in the docs, to see what
> is being transmitted.
>
> Thanks,
> -Matt
>
> > -----Original Message-----
> > From: David Turner [mailto:[EMAIL PROTECTED]]
> > Sent: Monday, June 11, 2001 12:53 PM
> > To: SoapDev
> > Subject: SAXParserException
> >
> >
> > I'm currently running soap2.2 with tomcat 4 beta on a standalone machine
> >
> > (no net connection), and when I run a simple example I get a
> > SaxParserException saying "The contents of elements must consist of
> > well-formed character data or markup." Am I getting this message
> > because it can't get to "http://schemas.xmlsoap.org/soap/envelope/"?
> >
> > Is there a way to run soap applications without connecting to the net if
> >
> > the above is true? Normally, this would run on a network, but I trying
> > to create a development environment.
> >
> >
> >
--
David Turner <[EMAIL PROTECTED]>
Senior Software Engineer
Whitehead Institute/MIT Center for Genome Research
One Kendall Square, Bldg. 300
Cambridge, MA 02139-1561 USA
phone 617-252-1573 / fax 617-252-1902