We have two cloned servers in a clustered-fail-over
environment. Due to some hardware problems, server 1 was rebuilt
and restored to being a mirror of server 2. At this point a web
service registered to both stopped working on server 1. The service
simply returns a query object.
Calling the service from server 1 results in the following
error:
coldfusion.xml.rpc.ServiceProxy$ServiceInvocationException:
Could not perform web service invocation "getusercommunitybindings"
because AxisFault
faultCode: {
http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: org.xml.sax.SAXParseException: Next character
must be ">" terminating comment .
faultActor:
faultNode:
faultDetail:
{
http://xml.apache.org/axis/}stackTrace:
org.xml.sax.SAXParseException: Next character must be
">" terminating comment .
at com.macromedia.crimson.parser.Parser2.fatal(Unknown
Source)
at com.macromedia.crimson.parser.Parser2.fatal(Unknown
Source)
at com.macromedia.crimson.parser.Parser2.nextChar(Unknown
Source)
at
com.macromedia.crimson.parser.Parser2.maybeComment(Unknown Source)
at com.macromedia.crimson.parser.Parser2.maybeMisc(Unknown
Source)
at
com.macromedia.crimson.parser.Parser2.parseInternal(Unknown Source)
at com.macromedia.crimson.parser.Parser2.parse(Unknown
Source)
at com.macromedia.crimson.parser.XMLReaderImpl.parse(Unknown
Source)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at org.apache.axis.enc...
at
coldfusion.xml.rpc.ServiceProxy.invokeImpl(ServiceProxy.java:219)
at
coldfusion.xml.rpc.ServiceProxy.invoke(ServiceProxy.java:132)
at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:1587)
at
coldfusion.tagext.lang.InvokeTag.doEndTag(InvokeTag.java:372)
at
cflp2ecfm1020086963.runPage(\\sanbox\cfas_storage$\WebSites\Ecampus\lp.cfm:9)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:147)
at
coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:357)
at
coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:62)
at
coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:107)
at
coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:80)
at
coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:47)
at
coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:52)
at
coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at
coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:35)
at
coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:43)
at
coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
at coldfusion.CfmServlet.service(CfmServlet.java:105)
at
jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
at
jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at
jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:249)
at
jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:527)
at
jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:192)
at
jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:348)
at
jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:451)
at
jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:294)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
Calling the service directly from both servers (with the
correct authentication) results in a successful XML return:
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="
http://webservices"
xmlns:impl="
http://webservices" xmlns:intf="
http://webservices"
xmlns:apachesoap="
http://xml.apache.org/xml-soap"
xmlns:wsdlsoap="
http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="
http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="
http://www.w3.org/2001/XMLSchema"
xmlns:tns1="
http:// rpc.xml.coldfusion" xmlns:wsdl="
http://schemas.xmlsoap.org/wsdl/"
xmlns="
http://schemas.xmlsoap.org/wsdl/">
- <wsdl:types>
- <schema xmlns="
http://www.w3.org/2001/XMLSchema"
targetNamespace="
http://rpc.xml.coldfusion">
<import namespace="
http://schemas.xmlsoap.org/soap/encoding/"
/>
- <complexType name="CFCInvocationException">
<sequence />
</complexType>
</schema>
</wsdl:types>
- <wsdl:message name="getusercommunitybindingsRequest">
<wsdl:part name="vchemersonusername" type="xsd:string"
/>
</wsdl:message>
- <wsdl:message name="CFCInvocationException">
<wsdl:part name="fault"
type="tns1:CFCInvocationException" />
</wsdl:message>
- <wsdl:message
name="getusercommunitybindingsResponse">
<wsdl:part name="getusercommunitybindingsReturn"
type="xsd:string" />
</wsdl:message>
- <wsdl:portType name="UserInformation">
- <wsdl:operation name="getusercommunitybindings"
parameterOrder="vchemersonusername">
<wsdl:input name="getusercommunitybindingsRequest"
message="impl:getusercommunitybindingsRequest" />
<wsdl:output name="getusercommunitybindingsResponse"
message="impl:getusercommunitybindingsResponse" />
<wsdl:fault name="CFCInvocationException"
message="impl:CFCInvocationException" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="UserInformation.cfcSoapBinding"
type="impl:UserInformation">
<wsdlsoap:binding style="rpc" transport="
http:// schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="getusercommunitybindings">
<wsdlsoap:operation soapAction="" />
- <wsdl:input name="getusercommunitybindingsRequest">
<wsdlsoap:body use="encoded" encodingStyle="
http:// schemas.xmlsoap.org/soap/encoding/"
namespace="
http://webservices" />
</wsdl:input>
- <wsdl:output name="getusercommunitybindingsResponse">
<wsdlsoap:body use="encoded" encodingStyle="
http:// schemas.xmlsoap.org/soap/encoding/"
namespace="
http://webservices" />
</wsdl:output>
- <wsdl:fault name="CFCInvocationException">
<wsdlsoap:fault use="encoded" encodingStyle="
http:// schemas.xmlsoap.org/soap/encoding/"
namespace="
http://webservices" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="UserInformationService">
- <wsdl:port name="UserInformation.cfc"
binding="impl:UserInformation.cfcSoapBinding">
<wsdlsoap:address location="
http://learningportals.emerson.edu/
webservices/UserInformation.cfc" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
with 2 differences:
the non-functionign server loses the case sensitivity in the
following two places:
<wsdl:binding name="userinformation.cfcSoapBinding"
type="impl:UserInformation">
- <wsdl:port name="userinformation.cfc"
binding="impl:userinformation.cfcSoapBinding">
Looking through the xml I do not see any offending characters
to prompt the need for a closing ">" error above.
A first question is why would the second server lose the
case? and the more important question why will the service be
successfully invoked on one server and not the other?
I'm completely at a loss. Any help or direction would be
greatly appreciated.