Page 1 of 3 123 LastLast
Results 1 to 10 of 23

Thread: Unmarshall Exception while using AbstractMarshallingPayloadEndpoint

  1. #1
    Join Date
    Aug 2007
    Posts
    15

    Default Unmarshall Exception while using AbstractMarshallingPayloadEndpoint

    Hi,

    My endpoint looks like this:
    public class MarshallProjectSearchEP extends AbstractMarshallingPayloadEndpoint
    {
    public MarshallProjectSearchEP(Marshaller marshaller, Unmarshaller unm)
    {
    super(marshaller,unm);
    }

    public Object invokeInternal(Object request)
    {
    ....
    }

    }


    Here is my servlet mapping:

    <bean class="org.springframework.ws.server.endpoint.mapp ing.PayloadRootQNameEndpointMapping">
    <property name="mappings">
    <props>
    <prop key="{http://www.reflexisinc.com/schemas}ProjectSearch">MarshallProjectSearchEP</prop>
    </props>
    </property>
    </bean>

    <bean id="MarshallProjectSearchEP" class="com.reflexis.webservices.endpoint.MarshallP rojectSearchEP">
    <constructor-arg ref="marshaller"/>
    <constructor-arg ref="unmarshaller"/>
    </bean>

    <bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshalle r">
    <property name="contextPath" value="org.wsrtm.ProjectSearch"/>
    </bean>

    <bean id="unmarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshalle r">
    <property name="contextPath" value="org.wsrtm.ProjectSearch"/>
    </bean>


    Now when I invoke the service..this is the error I am getting:

    2007-10-08 17:40:21,843 DEBUG [org.springframework.ws.soap.server.SoapMessageDisp atcher] - Testing endpoint adapter [org.springframework.ws.server.endpoint.adapter.Mes sageEndpointAdapter@138ec91]
    2007-10-08 17:40:21,859 DEBUG [org.springframework.ws.soap.server.SoapMessageDisp atcher] - Testing endpoint exception resolver [org.springframework.ws.soap.server.endpoint.Simple SoapExceptionResolver@16fcc4]
    2007-10-08 17:40:21,875 WARN [org.springframework.ws.soap.server.SoapMessageDisp atcher] - Endpoint invocation resulted in exception - responding with SOAP Fault
    java.lang.UnsupportedOperationException
    at com.sun.xml.bind.v2.runtime.unmarshaller.Unmarshal lerImpl.setValidating(UnmarshallerImpl.java:458)
    at org.springframework.oxm.jaxb.Jaxb1Marshaller.initJ axbUnmarshaller(Jaxb1Marshaller.java:64)
    at org.springframework.oxm.jaxb.AbstractJaxbMarshalle r.createUnmarshaller(AbstractJaxbMarshaller.java:1 67)
    at org.springframework.oxm.jaxb.Jaxb1Marshaller.unmar shal(Jaxb1Marshaller.java:78)
    at org.springframework.ws.server.endpoint.support.Mar shallingUtils.unmarshal(MarshallingUtils.java:56)
    at org.springframework.ws.server.endpoint.AbstractMar shallingPayloadEndpoint.unmarshalRequest(AbstractM arshallingPayloadEndpoint.java:138)
    at org.springframework.ws.server.endpoint.AbstractMar shallingPayloadEndpoint.invoke(AbstractMarshalling PayloadEndpoint.java:129)
    at org.springframework.ws.server.endpoint.adapter.Mes sageEndpointAdapter.invoke(MessageEndpointAdapter. java:40)
    at org.springframework.ws.server.MessageDispatcher.di spatch(MessageDispatcher.java:210)
    at org.springframework.ws.server.MessageDispatcher.re ceive(MessageDispatcher.java:157)
    at org.springframework.ws.transport.support.WebServic eMessageReceiverObjectSupport.handleConnection(Web ServiceMessageReceiverObjectSupport.java:86)
    at org.springframework.ws.transport.http.WebServiceMe ssageReceiverHandlerAdapter.handle(WebServiceMessa geReceiverHandlerAdapter.java:56)
    at org.springframework.ws.transport.http.MessageDispa tcherServlet.doService(MessageDispatcherServlet.ja va:157)
    at org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:461)
    at org.springframework.web.servlet.FrameworkServlet.d oPost(FrameworkServlet.java:426)
    at javax.servlet.http.HttpServlet.service(HttpServlet .java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet .java:802)
    at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invo keInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(Cont ainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(Co yoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.processConnection(Http11Protocol.jav a:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(P oolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:595)



    I couldn't understand what the problem is.Can someone help me out?

    Thanks in Advance
    Prasanth

  2. #2
    Join Date
    Aug 2007
    Location
    Boston
    Posts
    20

    Default @Unmarshall exception

    The error u got is very much similar to that of mine when using jaxb2marshaller...
    Even I got struck up here..

    Can somebody help??

    ThankYou..
    Keerthi

  3. #3

    Default

    The following is working definition for jaxb2:
    Code:
    <bean id="jaxb2Marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
            <property name="mtomEnabled" value="false" />
            <property name="contextPath" value="${model.package}" />
            <property name="schema" value="${schema.path}" />
    </bean>

    The ${model.package} is really the full package name (not class name) where the ObjectFactory class is located (as well as other classes).

  4. #4
    Join Date
    Oct 2004
    Posts
    207

    Default

    First, a tip

    The Jaxb2Marshaller is both a Marshaller and Unmarshaller, you only need one bean for it.

    Code:
    <bean id="MarshallProjectSearchEP" class="com.reflexis.webservices.endpoint.MarshallP rojectSearchEP">
    <constructor-arg ref="marshaller"/>
    <constructor-arg ref="marshaller"/>
    </bean>
    
    <bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshalle r">
    <property name="contextPath" value="org.wsrtm.ProjectSearch"/>
    </bean>
    Second, as "exgorth" eluded to...

    The "contextPath" should be set to the package the marshalled/unmarshalled classes are in.

    Or you could set the individual classes to be bound using the "classesToBeBound" property on the Jaxb2Marshaller.

  5. #5
    Join Date
    Aug 2007
    Location
    Boston
    Posts
    20

    Default

    Even after implementing what you have said..I am still getting the following error:

    2007-10-09 10:34:28,843 DEBUG [org.springframework.ws.soap.server.SoapMessageDisp atcher] - Testing endpoint adapter [org.springframework.ws.server.endpoint.adapter.Mes sageEndpointAdapter@148083b]
    2007-10-09 10:34:28,890 DEBUG [org.springframework.ws.soap.server.SoapMessageDisp atcher] - Testing endpoint exception resolver [org.springframework.ws.soap.server.endpoint.Simple SoapExceptionResolver@1866417]
    2007-10-09 10:34:28,906 WARN [org.springframework.ws.soap.server.SoapMessageDisp atcher] - Endpoint invocation resulted in exception - responding with SOAP Fault
    org.springframework.oxm.jaxb.JaxbUnmarshallingFail ureException: JAXB unmarshalling exception: null; nested exception is javax.xml.bind.UnmarshalException
    - with linked exception:
    [org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'xsi:ProjectSearch'.]
    Caused by:
    javax.xml.bind.UnmarshalException
    - with linked exception:
    [org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'xsi:ProjectSearch'.]
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.cr eateUnmarshalException(AbstractUnmarshallerImpl.ja va:315)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Unmarshal lerImpl.createUnmarshalException(UnmarshallerImpl. java:481)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Unmarshal lerImpl.unmarshal0(UnmarshallerImpl.java:299)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Unmarshal lerImpl.unmarshal(UnmarshallerImpl.java:272)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.un marshal(AbstractUnmarshallerImpl.java:107)
    at org.springframework.oxm.jaxb.Jaxb2Marshaller.unmar shal(Jaxb2Marshaller.java:311)
    at org.springframework.ws.server.endpoint.support.Mar shallingUtils.unmarshal(MarshallingUtils.java:53)
    at org.springframework.ws.server.endpoint.AbstractMar shallingPayloadEndpoint.unmarshalRequest(AbstractM arshallingPayloadEndpoint.java:138)
    at org.springframework.ws.server.endpoint.AbstractMar shallingPayloadEndpoint.invoke(AbstractMarshalling PayloadEndpoint.java:129)
    at org.springframework.ws.server.endpoint.adapter.Mes sageEndpointAdapter.invoke(MessageEndpointAdapter. java:40)
    at org.springframework.ws.server.MessageDispatcher.di spatch(MessageDispatcher.java:210)
    at org.springframework.ws.server.MessageDispatcher.re ceive(MessageDispatcher.java:157)
    at org.springframework.ws.transport.support.WebServic eMessageReceiverObjectSupport.handleConnection(Web ServiceMessageReceiverObjectSupport.java:86)
    at org.springframework.ws.transport.http.WebServiceMe ssageReceiverHandlerAdapter.handle(WebServiceMessa geReceiverHandlerAdapter.java:56)
    at org.springframework.ws.transport.http.MessageDispa tcherServlet.doService(MessageDispatcherServlet.ja va:157)
    at org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:461)
    at org.springframework.web.servlet.FrameworkServlet.d oPost(FrameworkServlet.java:426)
    at javax.servlet.http.HttpServlet.service(HttpServlet .java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet .java:802)
    at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invo keInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invo keNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(Cont ainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(Co yoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.processConnection(Http11Protocol.jav a:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(P oolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'xsi:ProjectSearch'.
    at org.apache.xerces.util.ErrorHandlerWrapper.createS AXParseException(Unknown Source)
    at org.apache.xerces.util.ErrorHandlerWrapper.error(U nknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportErro r(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportErro r(Unknown Source)
    at org.apache.xerces.impl.xs.XMLSchemaValidator.handl eStartElement(Unknown Source)
    at org.apache.xerces.impl.xs.XMLSchemaValidator.start Element(Unknown Source)
    at org.apache.xerces.jaxp.validation.ValidatorHandler Impl.startElement(Unknown Source)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Validatin gUnmarshaller.startElement(ValidatingUnmarshaller. java:73)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Interning XmlVisitor.startElement(InterningXmlVisitor.java:3 5)
    at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnec tor.startElement(SAXConnector.java:101)
    at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOM Scanner.java:224)
    at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMS canner.java:107)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Unmarshal lerImpl.unmarshal0(UnmarshallerImpl.java:289)

  6. #6

    Default

    could you post here your schema?

  7. #7
    Join Date
    Aug 2007
    Posts
    15

    Default

    This is my xsd:
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="ProjectSearch">
    <xs:annotation>
    <xs:documentation>Project Search Criteria</xs:documentation>
    </xs:annotation>
    <xs:complexType>
    <xs:sequence>
    <xs:element name="Project" minOccurs="0">
    <xs:complexType>
    <xs:simpleContent>
    <xs:extension base="xs:string">
    <xs:attribute ref="RTMCase"/>
    <xs:attribute ref="RTMMatch"/>
    <xs:attribute ref="RTMValue"/>
    </xs:extension>
    </xs:simpleContent>
    </xs:complexType>
    </xs:element>
    </xs:sequence>
    </xs:complexType>
    </xs:element>

    This is my xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsi:ProjectSearch xmlns:xsi="http://www.reflexisinc.com/schemas">

    <Project RTMCase="IGNORE" RTMMatch="LIKE" RTMValue="ID">COM4515</Project>
    </xsi:ProjectSearch>

  8. #8

    Default

    I don't see any errors. Please, take a look in the attached zip at schema (maybe you've forgotten to specify target namespace) and be sure that schema contains request and response elements (specified by requestSuffix, responseSuffix).

    Could you show the generated wsdl?

    The 'samples' are very helpful at startup, so inspect 'hello' and airline.

    PS attached zip contains tests for marshal/unmarshal with jaxb2 using your schema.
    Attached Files Attached Files

  9. #9
    Join Date
    Aug 2007
    Posts
    15

    Default

    thanx for ur reply.But even after adding the target name space..i am getting the following error:

    org.springframework.oxm.jaxb.JaxbUnmarshallingFail ureException: JAXB unmarshalling exception: null; nested exception is javax.xml.bind.UnmarshalException
    - with linked exception:
    [org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'xsi:ProjectSearch'.]
    Caused by:
    javax.xml.bind.UnmarshalException
    - with linked exception:
    [org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'xsi:ProjectSearch'.]


    we have not used maven for generating the servlet.xml file.
    I am pasting the servlet.xml file here. Can u please look at it..Here is the xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

    <bean class="org.springframework.ws.server.endpoint.mapp ing.PayloadRootQNameEndpointMapping">

    <property name="mappings">
    <props>
    <prop key="{http://www.reflexisinc.com/schemas}ProjectSearch">MarshallProjectSearchEP</prop>
    </props>
    </property>
    </bean>

    <bean id="MarshallProjectSearchEP" class="com.reflexis.webservices.endpoint.MarshallP rojectSearchEP">
    <constructor-arg ref="ProjectSearchSV"/>
    <constructor-arg ref="marshaller"/>
    <constructor-arg ref="marshaller"/>
    </bean>

    <bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshalle r">
    <property name="mtomEnabled" value="false" />
    <property name="contextPath" value="org.wsrtm.ProjectSearch"/>
    <property name="schema" value="file:\\\C:\Tomcat\webapps\RflxsWebServices\ WEB-INF\xsd\ProjectSearch.xsd"/>
    </bean>

    <bean id="ProjectSearchSV" class="com.reflexis.webservices.service.ProjectSea rchSV"/>

    </beans>

  10. #10
    Join Date
    Aug 2007
    Posts
    15

    Default

    And this is how my endpoint looks like:

    public class MarshallProjectSearchEP extends AbstractMarshallingPayloadEndpoint
    {

    private ProjectSearchSV projectSearchSV;
    eTrace.util.DatabaseConnection dbConn;
    private BasicDataSource basicDataSource= null;
    private final static String CLASS_NAME = MarshallProjectSearchEP.class.getName();
    private static Logger _logger = Logger.getLogger("CLASS_NAME");

    public MarshallProjectSearchEP()
    {

    }

    public MarshallProjectSearchEP(ProjectSearchSV projectSearchSV, Marshaller marshaller, Unmarshaller unm) {
    super(marshaller,unm);
    this.projectSearchSV = projectSearchSV;
    }

    public Object invokeInternal(Object request)
    {

    try
    {
    dbConn = new DatabaseConnection("oracle.jdbc.driver.OracleDrive r","jdbc:oracle:thin:@","192.168.7.3","1521","CYRR WS","RTM24FITDEMO","RTM24FITDEMO");
    System.out.println("in end point" + dbConn);

    }

    catch(Exception e)
    {
    e.printStackTrace(System.out);

    }

    return null;
    }


    }

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •