System specs.
CXF 2.1
Tomcat 5.5.17 (I know it's old, but I'm stuck with this)
Java 1.5.0_12
I'm trying to validate the XML input to my web service, but I ran into this
stack overflow.
snip stacktrace from log
19 maj 2008 16:59:17,711 ERROR
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/services].[QuotaWebservicesServlet]
- Servlet.service() for servlet QuotaWebservicesServlet threw exception
java.lang.StackOverflowError
at java.nio.charset.Charset.atBugLevel(Charset.java:258)
at java.nio.charset.CharsetDecoder.<init>(CharsetDecoder.java:177)
at java.nio.charset.CharsetDecoder.<init>(CharsetDecoder.java:209)
at sun.nio.cs.SingleByteDecoder.<init>(SingleByteDecoder.java:29)
at sun.nio.cs.MS1252$Decoder.<init>(MS1252.java:72)
at sun.nio.cs.MS1252.newDecoder(MS1252.java:39)
at
java.nio.charset.CharsetEncoder.isLegalReplacement(CharsetEncoder.java:311)
at java.nio.charset.CharsetEncoder.replaceWith(CharsetEncoder.java:267)
at java.nio.charset.CharsetEncoder.<init>(CharsetEncoder.java:186)
at java.nio.charset.CharsetEncoder.<init>(CharsetEncoder.java:209)
at sun.nio.cs.SingleByteEncoder.<init>(SingleByteEncoder.java:39)
at sun.nio.cs.MS1252$Encoder.<init>(MS1252.java:115)
at sun.nio.cs.MS1252.newEncoder(MS1252.java:43)
at sun.nio.cs.StreamEncoder$CharsetSE.<init>(StreamEncoder.java:290)
at sun.nio.cs.StreamEncoder$CharsetSE.<init>(StreamEncoder.java:274)
at sun.nio.cs.StreamEncoder.forOutputStreamWriter(StreamEncoder.java:69)
at java.io.OutputStreamWriter.<init>(OutputStreamWriter.java:93)
at java.io.PrintWriter.<init>(PrintWriter.java:109)
at
org.apache.xml.utils.DefaultErrorHandler.<init>(DefaultErrorHandler.java:80)
at
org.apache.xalan.processor.TransformerFactoryImpl.<init>(TransformerFactoryImpl.java:1002)
at sun.reflect.GeneratedConstructorAccessor49.newInstance(Unknown
Source)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at java.lang.Class.newInstance0(Class.java:350)
at java.lang.Class.newInstance(Class.java:303)
at javax.xml.transform.FactoryFinder.newInstance(FactoryFinder.java:100)
at
javax.xml.transform.FactoryFinder.findJarServiceProvider(FactoryFinder.java:278)
at javax.xml.transform.FactoryFinder.find(FactoryFinder.java:185)
at
javax.xml.transform.TransformerFactory.newInstance(TransformerFactory.java:103)
at
org.apache.cxf.wsdl.EndpointReferenceUtils$SchemaLSResourceResolver.getSchemaAsStream(EndpointReferenceUtils.java:115)
at
org.apache.cxf.wsdl.EndpointReferenceUtils$SchemaLSResourceResolver.resolveResource(EndpointReferenceUtils.java:130)
at
com.sun.org.apache.xerces.internal.util.DOMEntityResolverWrapper.resolveEntity(DOMEntityResolverWrapper.java:147)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.resolveEntity(XMLEntityManager.java:701)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.resolveDocument(XMLSchemaLoader.java:599)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.resolveSchema(XSDHandler.java:1458)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.constructTrees(XSDHandler.java:827)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.constructTrees(XSDHandler.java:843)
snip stacktrace from log - end
And so it continues for many lines...
Here's my spring application context
snip from spring application context
<!-- QuotaAnmodningHistorikSamlingHent -->
<!-- endpoint/webservice -->
<jaxws:endpoint id="quotaAnmodningHistorikSamlingHentEndpoint"
implementor="#quotaAnmodningHistorikSamlingHent"
implementorClass="dk.steria.quota.services.QuotaAnmodningHistorikSamlingHent"
wsdlLocation="D:/BADEnvironment/servers/Quota/apache-tomcat-5.5.17/webapps/services/WEB-INF/servicedescriptions/wsdl/QuotaAnmodningHistorikSamlingHent.wsdl"
address="/QuotaAnmodningHistorikSamlingHent">
<jaxws:properties>
<entry key="schema-validation-enabled" value="true" />
</jaxws:properties>
</jaxws:endpoint>
<!-- proxy class -->
<bean id="quotaAnmodningHistorikSamlingHent"
class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>dk.steria.quota.services.QuotaAnmodningHistorikSamlingHentServicePortType</value>
</property>
<property name="target">
<ref bean="quotaAnmodningHistorikSamlingHentTarget" />
</property>
<property name="interceptorNames">
<list>
<value>systemLogPointcutAdvisor</value>
</list>
</property>
</bean>
<!-- implementation class -->
<bean id="quotaAnmodningHistorikSamlingHentTarget"
class="dk.steria.quota.services.QuotaAnmodningHistorikSamlingHent"/>
snip from spring application context - end
It looks like the EndpointReferenceUtils are unable to locate the schemas,
which are packed along with the wsdl files in the (exploded) war.
The war structure looks like this:
exploded war
- META-INF
-- ...
- WEB-INF
-- classes
--- ...
-- lib
--- ...
-- servicedescriptions
--- wsdl
--- folder structure with xsd's
--- ...
-- applicationContext.xml
-- web.xml
I tried to look at the wsdl_first example, but I'm stuck. Any ideas?
/Nikolaj
--
View this message in context:
http://www.nabble.com/Problems-with-schema-validation-enabled-tp17319259p17319259.html
Sent from the cxf-user mailing list archive at Nabble.com.