You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Juan Velez (JIRA)" <ji...@apache.org> on 2008/09/05 19:00:44 UTC

[jira] Created: (CXF-1785) wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR

wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR
----------------------------------------------------------------------------------

                 Key: CXF-1785
                 URL: https://issues.apache.org/jira/browse/CXF-1785
             Project: CXF
          Issue Type: Bug
    Affects Versions: 2.1
         Environment: WinXP Pro SP3, Java 1.6, Spring 2.5, XmlBeans 2.3.0, CXF 2.1
            Reporter: Juan Velez


I have created my own WSDL and its corresponding service and implementation classes (annotated of course). When I do not use the wsdlLocation attribute on jaxws:endpoint, the request I send to the service works fine, but when I specify the wsdlLocation attribute, I get a NullPointerException/UNMARSHAL_ERROR from the XmlBeans databinding used by CXF. Any ideas where I am not doing it correctly?

Error

java.lang.NullPointerException
        at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
        at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
        at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
        at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
        at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
        at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
        at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
        at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:595)
Sep 4, 2008 12:35:49 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: UNMARSHAL_ERROR
        at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:81)
        at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
        at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
        at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
        at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
        at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
        at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
        at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
        at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
        ... 26 more


WSDL

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="mmi"
                  targetNamespace="http://com.arevatd.mmi/xml/wsdl"
                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                  xmlns:tns="http://com.arevatd.mmi/xml/wsdl"
                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:mmi="http://com.arevatd.mmi/xml">

  <wsdl:types>
    <xsd:schema targetNamespace="http://com.arevatd.mmi/xml/wsdl"
                xmlns="http://www.w3.org/2001/XMLSchema">

      <import namespace="http://com.arevatd.mmi/xml"
              schemaLocation="../xml/mmi.xsd" />

    </xsd:schema>
  </wsdl:types>

  <wsdl:message name="ExportRequestMessage">
    <wsdl:part name="request" element="mmi:ExportRequestMessage" />
  </wsdl:message>

  <wsdl:portType name="MMIExportRequestPortType">
    <wsdl:operation name="performExportRequest">
      <wsdl:input message="tns:ExportRequestMessage" />
    </wsdl:operation>
  </wsdl:portType>

  <wsdl:binding name="MMIExportRequestSoapBinding" type="tns:MMIExportRequestPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="performExportRequest">
      <soap:operation soapAction="performExportRequest" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
    </wsdl:operation>
  </wsdl:binding>

  <wsdl:service name="MMIExportRequestService">
      <wsdl:port name="MMIExportRequestPort" binding="tns:MMIExportRequestSoapBinding">
      <soap:address location="http://localhost:8080/mmi/services/export" />
    </wsdl:port>
  </wsdl:service>

</wsdl:definitions>

XML SCHEMA

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://com.arevatd.mmi/xml"
        xmlns:mmi="http://com.arevatd.mmi/xml"
        elementFormDefault="qualified">

        <complexType name="ExportRequestMessageType">
                <all>
                        <element minOccurs="1" maxOccurs="1" name="application"   type="string" />
                        <element minOccurs="1" maxOccurs="1" name="environment"   type="string" />
                        <element minOccurs="1" maxOccurs="1" name="directoryName" type="string" />
                        <element minOccurs="1" maxOccurs="1" name="filename"      type="string" />
                        <element minOccurs="1" maxOccurs="1" name="requestId"     type="string" />
                </all>
        </complexType>

        <element name="ExportRequestMessage" type="mmi:ExportRequestMessageType" />

</schema>

CXF-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- Configuration File for CXF -->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jaxws="http://cxf.apache.org/jaxws"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
       
    <import resource="classpath:META-INF/cxf/cxf.xml" />
    <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
   
    <bean id="exportService" class="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl" scope="prototype" />
   
    <bean id="xmlBeansBean" class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" scope="prototype" />

    <bean id="exportServiceFactory" class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean" scope="singleton">
      <property name="dataBinding" ref="xmlBeansBean" />
    </bean>

    <jaxws:endpoint id="exportServiceEndPoint"
                    implementor="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl"
                    address="/export"
                    wsdlLocation="wsdl/mmi.wsdl" >
        <jaxws:serviceFactory>
            <ref bean="exportServiceFactory" />
        </jaxws:serviceFactory>
    </jaxws:endpoint>

</beans>

Service Class

package com.arevatd.mmi.business.services;

import javax.jws.Oneway;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;

import mmi.arevatd.com.xml.ExportRequestMessageType;


/**
 * Interface for the Import Service
 *
 * @author jvelez
 *
 */
@WebService(name="MMIExportRequestPortType",
            targetNamespace="http://com.arevatd.mmi/xml/wsdl")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public interface CmiModelDataExportWs {
    /**
     * The actual operation for this web service: perform an export of CMI Model Data
     *
     * @param request The Request to export a e-terrasource export project
     */
    @WebMethod(operationName = "performExportRequest", action = "performExportRequest")
    @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
    @Oneway()
    public void exportCmiModelData(
        @WebParam(targetNamespace = "http://com.arevatd.mmi/xml",
                  partName="request",
                  name = "ExportRequestMessage")
        ExportRequestMessageType request);
}

Service Implementation Class

package com.arevatd.mmi.business.services.support;

import java.util.logging.Logger;

import javax.jws.WebService;
import javax.xml.namespace.QName;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPFactory;
import javax.xml.soap.SOAPFault;
import javax.xml.ws.BindingType;
import javax.xml.ws.soap.SOAPFaultException;

import com.arevatd.mmi.business.services.CmiModelDataExportWs;

import mmi.arevatd.com.xml.ExportRequestMessageType;


/**
 * Implementation for the CmiModelDataExportWs Web Service
 *
 * @author jvelez
 *
 */
@WebService(endpointInterface="com.arevatd.mmi.business.services.CmiModelDataExportWs",
            targetNamespace="http://com.arevatd.mmi/xml/wsdl",
            portName="MMIExportRequestPort",
            serviceName="MMIExportRequestService",
            name="MMIExportRequestPortType")
@BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
public class CmiModelDataExportWsImpl implements CmiModelDataExportWs {
    private final Logger logger = Logger.getLogger(this.getClass().getName());

    public void exportCmiModelData(ExportRequestMessageType request) /*throws ExportRequestFault*/ {
        logger.info("Application=" + request.getApplication());
        logger.info("Environment=" + request.getEnvironment());
        logger.info("Directory=" + request.getDirectoryName());
        logger.info("File=" + request.getFilename());
        logger.info("Export Request Id=" + request.getRequestId());
       
        try {
            SOAPFactory soapFactory = SOAPFactory.newInstance();
            SOAPFault fault = soapFactory.createFault("Hello",
                new QName("http://schemas.xmlsoap.org/soap/envelope/", "Client"));
            fault.setFaultString("Juan");

            throw new SOAPFaultException(fault);
        } catch(SOAPException se) {
        }
    }
}


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Re: [jira] Assigned: (CXF-1785) wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR

Posted by "juan.velez" <ju...@areva-td.com>.
FYI: As I was having so many issues with XmlBeans, I changed the Xml
DataBinding to JAXB. Using JAXB, this problem does not happen.


JIRA jira@apache.org wrote:
> 
> 
>      [
> https://issues.apache.org/jira/browse/CXF-1785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
> ]
> 
> Sean O'Callaghan reassigned CXF-1785:
> -------------------------------------
> 
>     Assignee: Sean O'Callaghan
> 
>> wsdlLocation attribute and XmlBeans: Getting
>> NullPointerException/UNMARSHALL_ERROR
>> ----------------------------------------------------------------------------------
>>
>>                 Key: CXF-1785
>>                 URL: https://issues.apache.org/jira/browse/CXF-1785
>>             Project: CXF
>>          Issue Type: Bug
>>    Affects Versions: 2.1
>>         Environment: WinXP Pro SP3, Java 1.6, Spring 2.5, XmlBeans 2.3.0,
>> CXF 2.1
>>            Reporter: Juan Velez
>>            Assignee: Sean O'Callaghan
>>         Attachments: MMI CXF.zip
>>
>>
>> I have created my own WSDL and its corresponding service and
>> implementation classes (annotated of course). When I do not use the
>> wsdlLocation attribute on jaxws:endpoint, the request I send to the
>> service works fine, but when I specify the wsdlLocation attribute, I get
>> a NullPointerException/UNMARSHAL_ERROR from the XmlBeans databinding used
>> by CXF. Any ideas where I am not doing it correctly?
> 
> -- 
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Created%3A-%28CXF-1785%29-wsdlLocation-attribute-and-XmlBeans%3A-Getting-NullPointerException-UNMARSHALL_ERROR-tp19335533p19383160.html
Sent from the cxf-issues mailing list archive at Nabble.com.


[jira] Updated: (CXF-1785) wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR

Posted by "Juan Velez (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Juan Velez updated CXF-1785:
----------------------------

    Attachment: MMI CXF.zip

This is the Eclipe Project that I am using when I get the error. (It also includes the XSD and WSDL files)

CXF 2.1, Spring 2.5 and XmlBeans 2.3.0 libraries have been removed from the lib folder.

I am using SOAP UI 2.0.2 to test the WS

This is the SOAP Request I am using

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://com.arevatd.mmi/xml">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:ExportRequestMessage>
         <!--You may enter the following 5 items in any order-->
         <ns:application>?</ns:application>
         <ns:environment>?</ns:environment>
         <ns:directoryName>?</ns:directoryName>
         <ns:filename>?</ns:filename>
         <ns:requestId>?</ns:requestId>
      </ns:ExportRequestMessage>
   </soapenv:Body>
</soapenv:Envelope>

> wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR
> ----------------------------------------------------------------------------------
>
>                 Key: CXF-1785
>                 URL: https://issues.apache.org/jira/browse/CXF-1785
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.1
>         Environment: WinXP Pro SP3, Java 1.6, Spring 2.5, XmlBeans 2.3.0, CXF 2.1
>            Reporter: Juan Velez
>         Attachments: MMI CXF.zip
>
>
> I have created my own WSDL and its corresponding service and implementation classes (annotated of course). When I do not use the wsdlLocation attribute on jaxws:endpoint, the request I send to the service works fine, but when I specify the wsdlLocation attribute, I get a NullPointerException/UNMARSHAL_ERROR from the XmlBeans databinding used by CXF. Any ideas where I am not doing it correctly?
> Error
> java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Sep 4, 2008 12:35:49 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: UNMARSHAL_ERROR
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:81)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         ... 26 more
> WSDL
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="mmi"
>                   targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>                   xmlns:tns="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>                   xmlns:mmi="http://com.arevatd.mmi/xml">
>   <wsdl:types>
>     <xsd:schema targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                 xmlns="http://www.w3.org/2001/XMLSchema">
>       <import namespace="http://com.arevatd.mmi/xml"
>               schemaLocation="../xml/mmi.xsd" />
>     </xsd:schema>
>   </wsdl:types>
>   <wsdl:message name="ExportRequestMessage">
>     <wsdl:part name="request" element="mmi:ExportRequestMessage" />
>   </wsdl:message>
>   <wsdl:portType name="MMIExportRequestPortType">
>     <wsdl:operation name="performExportRequest">
>       <wsdl:input message="tns:ExportRequestMessage" />
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="MMIExportRequestSoapBinding" type="tns:MMIExportRequestPortType">
>     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
>     <wsdl:operation name="performExportRequest">
>       <soap:operation soapAction="performExportRequest" style="document" />
>       <wsdl:input>
>         <soap:body use="literal" />
>       </wsdl:input>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="MMIExportRequestService">
>       <wsdl:port name="MMIExportRequestPort" binding="tns:MMIExportRequestSoapBinding">
>       <soap:address location="http://localhost:8080/mmi/services/export" />
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
> XML SCHEMA
> <?xml version="1.0" encoding="UTF-8"?>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
>         targetNamespace="http://com.arevatd.mmi/xml"
>         xmlns:mmi="http://com.arevatd.mmi/xml"
>         elementFormDefault="qualified">
>         <complexType name="ExportRequestMessageType">
>                 <all>
>                         <element minOccurs="1" maxOccurs="1" name="application"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="environment"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="directoryName" type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="filename"      type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="requestId"     type="string" />
>                 </all>
>         </complexType>
>         <element name="ExportRequestMessage" type="mmi:ExportRequestMessageType" />
> </schema>
> CXF-servlet.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- Configuration File for CXF -->
> <beans xmlns="http://www.springframework.org/schema/beans"
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>        xmlns:jaxws="http://cxf.apache.org/jaxws"
>        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
>        
>     <import resource="classpath:META-INF/cxf/cxf.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>    
>     <bean id="exportService" class="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl" scope="prototype" />
>    
>     <bean id="xmlBeansBean" class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" scope="prototype" />
>     <bean id="exportServiceFactory" class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean" scope="singleton">
>       <property name="dataBinding" ref="xmlBeansBean" />
>     </bean>
>     <jaxws:endpoint id="exportServiceEndPoint"
>                     implementor="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl"
>                     address="/export"
>                     wsdlLocation="wsdl/mmi.wsdl" >
>         <jaxws:serviceFactory>
>             <ref bean="exportServiceFactory" />
>         </jaxws:serviceFactory>
>     </jaxws:endpoint>
> </beans>
> Service Class
> package com.arevatd.mmi.business.services;
> import javax.jws.Oneway;
> import javax.jws.WebMethod;
> import javax.jws.WebParam;
> import javax.jws.WebService;
> import javax.jws.soap.SOAPBinding;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Interface for the Import Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(name="MMIExportRequestPortType",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl")
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
> public interface CmiModelDataExportWs {
>     /**
>      * The actual operation for this web service: perform an export of CMI Model Data
>      *
>      * @param request The Request to export a e-terrasource export project
>      */
>     @WebMethod(operationName = "performExportRequest", action = "performExportRequest")
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @Oneway()
>     public void exportCmiModelData(
>         @WebParam(targetNamespace = "http://com.arevatd.mmi/xml",
>                   partName="request",
>                   name = "ExportRequestMessage")
>         ExportRequestMessageType request);
> }
> Service Implementation Class
> package com.arevatd.mmi.business.services.support;
> import java.util.logging.Logger;
> import javax.jws.WebService;
> import javax.xml.namespace.QName;
> import javax.xml.soap.SOAPException;
> import javax.xml.soap.SOAPFactory;
> import javax.xml.soap.SOAPFault;
> import javax.xml.ws.BindingType;
> import javax.xml.ws.soap.SOAPFaultException;
> import com.arevatd.mmi.business.services.CmiModelDataExportWs;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Implementation for the CmiModelDataExportWs Web Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(endpointInterface="com.arevatd.mmi.business.services.CmiModelDataExportWs",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl",
>             portName="MMIExportRequestPort",
>             serviceName="MMIExportRequestService",
>             name="MMIExportRequestPortType")
> @BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
> public class CmiModelDataExportWsImpl implements CmiModelDataExportWs {
>     private final Logger logger = Logger.getLogger(this.getClass().getName());
>     public void exportCmiModelData(ExportRequestMessageType request) /*throws ExportRequestFault*/ {
>         logger.info("Application=" + request.getApplication());
>         logger.info("Environment=" + request.getEnvironment());
>         logger.info("Directory=" + request.getDirectoryName());
>         logger.info("File=" + request.getFilename());
>         logger.info("Export Request Id=" + request.getRequestId());
>        
>         try {
>             SOAPFactory soapFactory = SOAPFactory.newInstance();
>             SOAPFault fault = soapFactory.createFault("Hello",
>                 new QName("http://schemas.xmlsoap.org/soap/envelope/", "Client"));
>             fault.setFaultString("Juan");
>             throw new SOAPFaultException(fault);
>         } catch(SOAPException se) {
>         }
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Issue Comment Edited: (CXF-1785) wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR

Posted by "Knut Ivar Skogland (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12677275#action_12677275 ] 

knutivar edited comment on CXF-1785 at 2/27/09 1:24 AM:
------------------------------------------------------------------

Added file CXFTestXmlBeansHeader.rar. It contains a working project with CXF and xmlbeans.... until you actually pass a value in the SOAP Header. If you use <soapenv:header /> it will run. If you use any value in the soap header, it will fail with the unmarshall error.

      was (Author: knutivar):
    Working project with CXF and xmlbeans.... until you pass a value in the SOAP Header.
  
> wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR
> ----------------------------------------------------------------------------------
>
>                 Key: CXF-1785
>                 URL: https://issues.apache.org/jira/browse/CXF-1785
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.1
>         Environment: WinXP Pro SP3, Java 1.6, Spring 2.5, XmlBeans 2.3.0, CXF 2.1
>            Reporter: Juan Velez
>            Assignee: Sean O'Callaghan
>         Attachments: CXFTestXmlBeansHeader.rar, MMI CXF.zip
>
>
> I have created my own WSDL and its corresponding service and implementation classes (annotated of course). When I do not use the wsdlLocation attribute on jaxws:endpoint, the request I send to the service works fine, but when I specify the wsdlLocation attribute, I get a NullPointerException/UNMARSHAL_ERROR from the XmlBeans databinding used by CXF. Any ideas where I am not doing it correctly?
> Error
> java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Sep 4, 2008 12:35:49 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: UNMARSHAL_ERROR
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:81)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         ... 26 more
> WSDL
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="mmi"
>                   targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>                   xmlns:tns="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>                   xmlns:mmi="http://com.arevatd.mmi/xml">
>   <wsdl:types>
>     <xsd:schema targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                 xmlns="http://www.w3.org/2001/XMLSchema">
>       <import namespace="http://com.arevatd.mmi/xml"
>               schemaLocation="../xml/mmi.xsd" />
>     </xsd:schema>
>   </wsdl:types>
>   <wsdl:message name="ExportRequestMessage">
>     <wsdl:part name="request" element="mmi:ExportRequestMessage" />
>   </wsdl:message>
>   <wsdl:portType name="MMIExportRequestPortType">
>     <wsdl:operation name="performExportRequest">
>       <wsdl:input message="tns:ExportRequestMessage" />
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="MMIExportRequestSoapBinding" type="tns:MMIExportRequestPortType">
>     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
>     <wsdl:operation name="performExportRequest">
>       <soap:operation soapAction="performExportRequest" style="document" />
>       <wsdl:input>
>         <soap:body use="literal" />
>       </wsdl:input>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="MMIExportRequestService">
>       <wsdl:port name="MMIExportRequestPort" binding="tns:MMIExportRequestSoapBinding">
>       <soap:address location="http://localhost:8080/mmi/services/export" />
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
> XML SCHEMA
> <?xml version="1.0" encoding="UTF-8"?>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
>         targetNamespace="http://com.arevatd.mmi/xml"
>         xmlns:mmi="http://com.arevatd.mmi/xml"
>         elementFormDefault="qualified">
>         <complexType name="ExportRequestMessageType">
>                 <all>
>                         <element minOccurs="1" maxOccurs="1" name="application"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="environment"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="directoryName" type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="filename"      type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="requestId"     type="string" />
>                 </all>
>         </complexType>
>         <element name="ExportRequestMessage" type="mmi:ExportRequestMessageType" />
> </schema>
> CXF-servlet.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- Configuration File for CXF -->
> <beans xmlns="http://www.springframework.org/schema/beans"
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>        xmlns:jaxws="http://cxf.apache.org/jaxws"
>        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
>        
>     <import resource="classpath:META-INF/cxf/cxf.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>    
>     <bean id="exportService" class="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl" scope="prototype" />
>    
>     <bean id="xmlBeansBean" class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" scope="prototype" />
>     <bean id="exportServiceFactory" class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean" scope="singleton">
>       <property name="dataBinding" ref="xmlBeansBean" />
>     </bean>
>     <jaxws:endpoint id="exportServiceEndPoint"
>                     implementor="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl"
>                     address="/export"
>                     wsdlLocation="wsdl/mmi.wsdl" >
>         <jaxws:serviceFactory>
>             <ref bean="exportServiceFactory" />
>         </jaxws:serviceFactory>
>     </jaxws:endpoint>
> </beans>
> Service Class
> package com.arevatd.mmi.business.services;
> import javax.jws.Oneway;
> import javax.jws.WebMethod;
> import javax.jws.WebParam;
> import javax.jws.WebService;
> import javax.jws.soap.SOAPBinding;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Interface for the Import Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(name="MMIExportRequestPortType",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl")
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
> public interface CmiModelDataExportWs {
>     /**
>      * The actual operation for this web service: perform an export of CMI Model Data
>      *
>      * @param request The Request to export a e-terrasource export project
>      */
>     @WebMethod(operationName = "performExportRequest", action = "performExportRequest")
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @Oneway()
>     public void exportCmiModelData(
>         @WebParam(targetNamespace = "http://com.arevatd.mmi/xml",
>                   partName="request",
>                   name = "ExportRequestMessage")
>         ExportRequestMessageType request);
> }
> Service Implementation Class
> package com.arevatd.mmi.business.services.support;
> import java.util.logging.Logger;
> import javax.jws.WebService;
> import javax.xml.namespace.QName;
> import javax.xml.soap.SOAPException;
> import javax.xml.soap.SOAPFactory;
> import javax.xml.soap.SOAPFault;
> import javax.xml.ws.BindingType;
> import javax.xml.ws.soap.SOAPFaultException;
> import com.arevatd.mmi.business.services.CmiModelDataExportWs;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Implementation for the CmiModelDataExportWs Web Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(endpointInterface="com.arevatd.mmi.business.services.CmiModelDataExportWs",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl",
>             portName="MMIExportRequestPort",
>             serviceName="MMIExportRequestService",
>             name="MMIExportRequestPortType")
> @BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
> public class CmiModelDataExportWsImpl implements CmiModelDataExportWs {
>     private final Logger logger = Logger.getLogger(this.getClass().getName());
>     public void exportCmiModelData(ExportRequestMessageType request) /*throws ExportRequestFault*/ {
>         logger.info("Application=" + request.getApplication());
>         logger.info("Environment=" + request.getEnvironment());
>         logger.info("Directory=" + request.getDirectoryName());
>         logger.info("File=" + request.getFilename());
>         logger.info("Export Request Id=" + request.getRequestId());
>        
>         try {
>             SOAPFactory soapFactory = SOAPFactory.newInstance();
>             SOAPFault fault = soapFactory.createFault("Hello",
>                 new QName("http://schemas.xmlsoap.org/soap/envelope/", "Client"));
>             fault.setFaultString("Juan");
>             throw new SOAPFaultException(fault);
>         } catch(SOAPException se) {
>         }
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CXF-1785) wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR

Posted by "Sean O'Callaghan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12634167#action_12634167 ] 

Sean O'Callaghan commented on CXF-1785:
---------------------------------------

Hi Juan,

Do you have a simple testcase which I could use to recreate this problem?

Regards,

Seán.

> wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR
> ----------------------------------------------------------------------------------
>
>                 Key: CXF-1785
>                 URL: https://issues.apache.org/jira/browse/CXF-1785
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.1
>         Environment: WinXP Pro SP3, Java 1.6, Spring 2.5, XmlBeans 2.3.0, CXF 2.1
>            Reporter: Juan Velez
>            Assignee: Sean O'Callaghan
>         Attachments: MMI CXF.zip
>
>
> I have created my own WSDL and its corresponding service and implementation classes (annotated of course). When I do not use the wsdlLocation attribute on jaxws:endpoint, the request I send to the service works fine, but when I specify the wsdlLocation attribute, I get a NullPointerException/UNMARSHAL_ERROR from the XmlBeans databinding used by CXF. Any ideas where I am not doing it correctly?
> Error
> java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Sep 4, 2008 12:35:49 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: UNMARSHAL_ERROR
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:81)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         ... 26 more
> WSDL
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="mmi"
>                   targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>                   xmlns:tns="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>                   xmlns:mmi="http://com.arevatd.mmi/xml">
>   <wsdl:types>
>     <xsd:schema targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                 xmlns="http://www.w3.org/2001/XMLSchema">
>       <import namespace="http://com.arevatd.mmi/xml"
>               schemaLocation="../xml/mmi.xsd" />
>     </xsd:schema>
>   </wsdl:types>
>   <wsdl:message name="ExportRequestMessage">
>     <wsdl:part name="request" element="mmi:ExportRequestMessage" />
>   </wsdl:message>
>   <wsdl:portType name="MMIExportRequestPortType">
>     <wsdl:operation name="performExportRequest">
>       <wsdl:input message="tns:ExportRequestMessage" />
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="MMIExportRequestSoapBinding" type="tns:MMIExportRequestPortType">
>     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
>     <wsdl:operation name="performExportRequest">
>       <soap:operation soapAction="performExportRequest" style="document" />
>       <wsdl:input>
>         <soap:body use="literal" />
>       </wsdl:input>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="MMIExportRequestService">
>       <wsdl:port name="MMIExportRequestPort" binding="tns:MMIExportRequestSoapBinding">
>       <soap:address location="http://localhost:8080/mmi/services/export" />
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
> XML SCHEMA
> <?xml version="1.0" encoding="UTF-8"?>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
>         targetNamespace="http://com.arevatd.mmi/xml"
>         xmlns:mmi="http://com.arevatd.mmi/xml"
>         elementFormDefault="qualified">
>         <complexType name="ExportRequestMessageType">
>                 <all>
>                         <element minOccurs="1" maxOccurs="1" name="application"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="environment"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="directoryName" type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="filename"      type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="requestId"     type="string" />
>                 </all>
>         </complexType>
>         <element name="ExportRequestMessage" type="mmi:ExportRequestMessageType" />
> </schema>
> CXF-servlet.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- Configuration File for CXF -->
> <beans xmlns="http://www.springframework.org/schema/beans"
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>        xmlns:jaxws="http://cxf.apache.org/jaxws"
>        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
>        
>     <import resource="classpath:META-INF/cxf/cxf.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>    
>     <bean id="exportService" class="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl" scope="prototype" />
>    
>     <bean id="xmlBeansBean" class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" scope="prototype" />
>     <bean id="exportServiceFactory" class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean" scope="singleton">
>       <property name="dataBinding" ref="xmlBeansBean" />
>     </bean>
>     <jaxws:endpoint id="exportServiceEndPoint"
>                     implementor="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl"
>                     address="/export"
>                     wsdlLocation="wsdl/mmi.wsdl" >
>         <jaxws:serviceFactory>
>             <ref bean="exportServiceFactory" />
>         </jaxws:serviceFactory>
>     </jaxws:endpoint>
> </beans>
> Service Class
> package com.arevatd.mmi.business.services;
> import javax.jws.Oneway;
> import javax.jws.WebMethod;
> import javax.jws.WebParam;
> import javax.jws.WebService;
> import javax.jws.soap.SOAPBinding;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Interface for the Import Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(name="MMIExportRequestPortType",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl")
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
> public interface CmiModelDataExportWs {
>     /**
>      * The actual operation for this web service: perform an export of CMI Model Data
>      *
>      * @param request The Request to export a e-terrasource export project
>      */
>     @WebMethod(operationName = "performExportRequest", action = "performExportRequest")
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @Oneway()
>     public void exportCmiModelData(
>         @WebParam(targetNamespace = "http://com.arevatd.mmi/xml",
>                   partName="request",
>                   name = "ExportRequestMessage")
>         ExportRequestMessageType request);
> }
> Service Implementation Class
> package com.arevatd.mmi.business.services.support;
> import java.util.logging.Logger;
> import javax.jws.WebService;
> import javax.xml.namespace.QName;
> import javax.xml.soap.SOAPException;
> import javax.xml.soap.SOAPFactory;
> import javax.xml.soap.SOAPFault;
> import javax.xml.ws.BindingType;
> import javax.xml.ws.soap.SOAPFaultException;
> import com.arevatd.mmi.business.services.CmiModelDataExportWs;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Implementation for the CmiModelDataExportWs Web Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(endpointInterface="com.arevatd.mmi.business.services.CmiModelDataExportWs",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl",
>             portName="MMIExportRequestPort",
>             serviceName="MMIExportRequestService",
>             name="MMIExportRequestPortType")
> @BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
> public class CmiModelDataExportWsImpl implements CmiModelDataExportWs {
>     private final Logger logger = Logger.getLogger(this.getClass().getName());
>     public void exportCmiModelData(ExportRequestMessageType request) /*throws ExportRequestFault*/ {
>         logger.info("Application=" + request.getApplication());
>         logger.info("Environment=" + request.getEnvironment());
>         logger.info("Directory=" + request.getDirectoryName());
>         logger.info("File=" + request.getFilename());
>         logger.info("Export Request Id=" + request.getRequestId());
>        
>         try {
>             SOAPFactory soapFactory = SOAPFactory.newInstance();
>             SOAPFault fault = soapFactory.createFault("Hello",
>                 new QName("http://schemas.xmlsoap.org/soap/envelope/", "Client"));
>             fault.setFaultString("Juan");
>             throw new SOAPFaultException(fault);
>         } catch(SOAPException se) {
>         }
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (CXF-1785) wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR

Posted by "Knut Ivar Skogland (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Knut Ivar Skogland updated CXF-1785:
------------------------------------

    Attachment: CXFTestXmlBeansHeader.rar

Working project with CXF and xmlbeans.... until you pass a value in the SOAP Header.

> wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR
> ----------------------------------------------------------------------------------
>
>                 Key: CXF-1785
>                 URL: https://issues.apache.org/jira/browse/CXF-1785
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.1
>         Environment: WinXP Pro SP3, Java 1.6, Spring 2.5, XmlBeans 2.3.0, CXF 2.1
>            Reporter: Juan Velez
>            Assignee: Sean O'Callaghan
>         Attachments: CXFTestXmlBeansHeader.rar, MMI CXF.zip
>
>
> I have created my own WSDL and its corresponding service and implementation classes (annotated of course). When I do not use the wsdlLocation attribute on jaxws:endpoint, the request I send to the service works fine, but when I specify the wsdlLocation attribute, I get a NullPointerException/UNMARSHAL_ERROR from the XmlBeans databinding used by CXF. Any ideas where I am not doing it correctly?
> Error
> java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Sep 4, 2008 12:35:49 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: UNMARSHAL_ERROR
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:81)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         ... 26 more
> WSDL
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="mmi"
>                   targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>                   xmlns:tns="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>                   xmlns:mmi="http://com.arevatd.mmi/xml">
>   <wsdl:types>
>     <xsd:schema targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                 xmlns="http://www.w3.org/2001/XMLSchema">
>       <import namespace="http://com.arevatd.mmi/xml"
>               schemaLocation="../xml/mmi.xsd" />
>     </xsd:schema>
>   </wsdl:types>
>   <wsdl:message name="ExportRequestMessage">
>     <wsdl:part name="request" element="mmi:ExportRequestMessage" />
>   </wsdl:message>
>   <wsdl:portType name="MMIExportRequestPortType">
>     <wsdl:operation name="performExportRequest">
>       <wsdl:input message="tns:ExportRequestMessage" />
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="MMIExportRequestSoapBinding" type="tns:MMIExportRequestPortType">
>     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
>     <wsdl:operation name="performExportRequest">
>       <soap:operation soapAction="performExportRequest" style="document" />
>       <wsdl:input>
>         <soap:body use="literal" />
>       </wsdl:input>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="MMIExportRequestService">
>       <wsdl:port name="MMIExportRequestPort" binding="tns:MMIExportRequestSoapBinding">
>       <soap:address location="http://localhost:8080/mmi/services/export" />
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
> XML SCHEMA
> <?xml version="1.0" encoding="UTF-8"?>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
>         targetNamespace="http://com.arevatd.mmi/xml"
>         xmlns:mmi="http://com.arevatd.mmi/xml"
>         elementFormDefault="qualified">
>         <complexType name="ExportRequestMessageType">
>                 <all>
>                         <element minOccurs="1" maxOccurs="1" name="application"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="environment"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="directoryName" type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="filename"      type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="requestId"     type="string" />
>                 </all>
>         </complexType>
>         <element name="ExportRequestMessage" type="mmi:ExportRequestMessageType" />
> </schema>
> CXF-servlet.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- Configuration File for CXF -->
> <beans xmlns="http://www.springframework.org/schema/beans"
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>        xmlns:jaxws="http://cxf.apache.org/jaxws"
>        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
>        
>     <import resource="classpath:META-INF/cxf/cxf.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>    
>     <bean id="exportService" class="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl" scope="prototype" />
>    
>     <bean id="xmlBeansBean" class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" scope="prototype" />
>     <bean id="exportServiceFactory" class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean" scope="singleton">
>       <property name="dataBinding" ref="xmlBeansBean" />
>     </bean>
>     <jaxws:endpoint id="exportServiceEndPoint"
>                     implementor="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl"
>                     address="/export"
>                     wsdlLocation="wsdl/mmi.wsdl" >
>         <jaxws:serviceFactory>
>             <ref bean="exportServiceFactory" />
>         </jaxws:serviceFactory>
>     </jaxws:endpoint>
> </beans>
> Service Class
> package com.arevatd.mmi.business.services;
> import javax.jws.Oneway;
> import javax.jws.WebMethod;
> import javax.jws.WebParam;
> import javax.jws.WebService;
> import javax.jws.soap.SOAPBinding;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Interface for the Import Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(name="MMIExportRequestPortType",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl")
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
> public interface CmiModelDataExportWs {
>     /**
>      * The actual operation for this web service: perform an export of CMI Model Data
>      *
>      * @param request The Request to export a e-terrasource export project
>      */
>     @WebMethod(operationName = "performExportRequest", action = "performExportRequest")
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @Oneway()
>     public void exportCmiModelData(
>         @WebParam(targetNamespace = "http://com.arevatd.mmi/xml",
>                   partName="request",
>                   name = "ExportRequestMessage")
>         ExportRequestMessageType request);
> }
> Service Implementation Class
> package com.arevatd.mmi.business.services.support;
> import java.util.logging.Logger;
> import javax.jws.WebService;
> import javax.xml.namespace.QName;
> import javax.xml.soap.SOAPException;
> import javax.xml.soap.SOAPFactory;
> import javax.xml.soap.SOAPFault;
> import javax.xml.ws.BindingType;
> import javax.xml.ws.soap.SOAPFaultException;
> import com.arevatd.mmi.business.services.CmiModelDataExportWs;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Implementation for the CmiModelDataExportWs Web Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(endpointInterface="com.arevatd.mmi.business.services.CmiModelDataExportWs",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl",
>             portName="MMIExportRequestPort",
>             serviceName="MMIExportRequestService",
>             name="MMIExportRequestPortType")
> @BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
> public class CmiModelDataExportWsImpl implements CmiModelDataExportWs {
>     private final Logger logger = Logger.getLogger(this.getClass().getName());
>     public void exportCmiModelData(ExportRequestMessageType request) /*throws ExportRequestFault*/ {
>         logger.info("Application=" + request.getApplication());
>         logger.info("Environment=" + request.getEnvironment());
>         logger.info("Directory=" + request.getDirectoryName());
>         logger.info("File=" + request.getFilename());
>         logger.info("Export Request Id=" + request.getRequestId());
>        
>         try {
>             SOAPFactory soapFactory = SOAPFactory.newInstance();
>             SOAPFault fault = soapFactory.createFault("Hello",
>                 new QName("http://schemas.xmlsoap.org/soap/envelope/", "Client"));
>             fault.setFaultString("Juan");
>             throw new SOAPFaultException(fault);
>         } catch(SOAPException se) {
>         }
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CXF-1785) wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR

Posted by "Knut Ivar Skogland (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12677274#action_12677274 ] 

Knut Ivar Skogland commented on CXF-1785:
-----------------------------------------

Hi! 

I have a similar problem using CXF and XMLBeans. The service works fine, but when I pass information in the SOAP Header, I get this stacktrace:
---------------------------------------------------------------------
26.feb.2009 20:07:42 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now UNMARSHAL_ERROR
fault =
java.lang.NullPointerException
at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
at org.apache.cxf.binding.soap.interceptor.SoapHeaderInterceptor.handleMessage(SoapHeaderInterceptor.java:109)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:226)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:89)
at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:99)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:305)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:175)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:163)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:141)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:767)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:548)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
---------------------------------------------------------------------

I'll upload a war file containing the project here. Complete with pom.xml and all the source you need. (For deployment, you have to change the path to tomcat in the pom.xml. For further information; see here: http://www.knutivars.net/cxf/index.html .

I hope this might help.  

> wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR
> ----------------------------------------------------------------------------------
>
>                 Key: CXF-1785
>                 URL: https://issues.apache.org/jira/browse/CXF-1785
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.1
>         Environment: WinXP Pro SP3, Java 1.6, Spring 2.5, XmlBeans 2.3.0, CXF 2.1
>            Reporter: Juan Velez
>            Assignee: Sean O'Callaghan
>         Attachments: MMI CXF.zip
>
>
> I have created my own WSDL and its corresponding service and implementation classes (annotated of course). When I do not use the wsdlLocation attribute on jaxws:endpoint, the request I send to the service works fine, but when I specify the wsdlLocation attribute, I get a NullPointerException/UNMARSHAL_ERROR from the XmlBeans databinding used by CXF. Any ideas where I am not doing it correctly?
> Error
> java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Sep 4, 2008 12:35:49 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: UNMARSHAL_ERROR
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:81)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         ... 26 more
> WSDL
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="mmi"
>                   targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>                   xmlns:tns="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>                   xmlns:mmi="http://com.arevatd.mmi/xml">
>   <wsdl:types>
>     <xsd:schema targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                 xmlns="http://www.w3.org/2001/XMLSchema">
>       <import namespace="http://com.arevatd.mmi/xml"
>               schemaLocation="../xml/mmi.xsd" />
>     </xsd:schema>
>   </wsdl:types>
>   <wsdl:message name="ExportRequestMessage">
>     <wsdl:part name="request" element="mmi:ExportRequestMessage" />
>   </wsdl:message>
>   <wsdl:portType name="MMIExportRequestPortType">
>     <wsdl:operation name="performExportRequest">
>       <wsdl:input message="tns:ExportRequestMessage" />
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="MMIExportRequestSoapBinding" type="tns:MMIExportRequestPortType">
>     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
>     <wsdl:operation name="performExportRequest">
>       <soap:operation soapAction="performExportRequest" style="document" />
>       <wsdl:input>
>         <soap:body use="literal" />
>       </wsdl:input>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="MMIExportRequestService">
>       <wsdl:port name="MMIExportRequestPort" binding="tns:MMIExportRequestSoapBinding">
>       <soap:address location="http://localhost:8080/mmi/services/export" />
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
> XML SCHEMA
> <?xml version="1.0" encoding="UTF-8"?>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
>         targetNamespace="http://com.arevatd.mmi/xml"
>         xmlns:mmi="http://com.arevatd.mmi/xml"
>         elementFormDefault="qualified">
>         <complexType name="ExportRequestMessageType">
>                 <all>
>                         <element minOccurs="1" maxOccurs="1" name="application"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="environment"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="directoryName" type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="filename"      type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="requestId"     type="string" />
>                 </all>
>         </complexType>
>         <element name="ExportRequestMessage" type="mmi:ExportRequestMessageType" />
> </schema>
> CXF-servlet.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- Configuration File for CXF -->
> <beans xmlns="http://www.springframework.org/schema/beans"
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>        xmlns:jaxws="http://cxf.apache.org/jaxws"
>        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
>        
>     <import resource="classpath:META-INF/cxf/cxf.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>    
>     <bean id="exportService" class="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl" scope="prototype" />
>    
>     <bean id="xmlBeansBean" class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" scope="prototype" />
>     <bean id="exportServiceFactory" class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean" scope="singleton">
>       <property name="dataBinding" ref="xmlBeansBean" />
>     </bean>
>     <jaxws:endpoint id="exportServiceEndPoint"
>                     implementor="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl"
>                     address="/export"
>                     wsdlLocation="wsdl/mmi.wsdl" >
>         <jaxws:serviceFactory>
>             <ref bean="exportServiceFactory" />
>         </jaxws:serviceFactory>
>     </jaxws:endpoint>
> </beans>
> Service Class
> package com.arevatd.mmi.business.services;
> import javax.jws.Oneway;
> import javax.jws.WebMethod;
> import javax.jws.WebParam;
> import javax.jws.WebService;
> import javax.jws.soap.SOAPBinding;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Interface for the Import Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(name="MMIExportRequestPortType",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl")
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
> public interface CmiModelDataExportWs {
>     /**
>      * The actual operation for this web service: perform an export of CMI Model Data
>      *
>      * @param request The Request to export a e-terrasource export project
>      */
>     @WebMethod(operationName = "performExportRequest", action = "performExportRequest")
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @Oneway()
>     public void exportCmiModelData(
>         @WebParam(targetNamespace = "http://com.arevatd.mmi/xml",
>                   partName="request",
>                   name = "ExportRequestMessage")
>         ExportRequestMessageType request);
> }
> Service Implementation Class
> package com.arevatd.mmi.business.services.support;
> import java.util.logging.Logger;
> import javax.jws.WebService;
> import javax.xml.namespace.QName;
> import javax.xml.soap.SOAPException;
> import javax.xml.soap.SOAPFactory;
> import javax.xml.soap.SOAPFault;
> import javax.xml.ws.BindingType;
> import javax.xml.ws.soap.SOAPFaultException;
> import com.arevatd.mmi.business.services.CmiModelDataExportWs;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Implementation for the CmiModelDataExportWs Web Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(endpointInterface="com.arevatd.mmi.business.services.CmiModelDataExportWs",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl",
>             portName="MMIExportRequestPort",
>             serviceName="MMIExportRequestService",
>             name="MMIExportRequestPortType")
> @BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
> public class CmiModelDataExportWsImpl implements CmiModelDataExportWs {
>     private final Logger logger = Logger.getLogger(this.getClass().getName());
>     public void exportCmiModelData(ExportRequestMessageType request) /*throws ExportRequestFault*/ {
>         logger.info("Application=" + request.getApplication());
>         logger.info("Environment=" + request.getEnvironment());
>         logger.info("Directory=" + request.getDirectoryName());
>         logger.info("File=" + request.getFilename());
>         logger.info("Export Request Id=" + request.getRequestId());
>        
>         try {
>             SOAPFactory soapFactory = SOAPFactory.newInstance();
>             SOAPFault fault = soapFactory.createFault("Hello",
>                 new QName("http://schemas.xmlsoap.org/soap/envelope/", "Client"));
>             fault.setFaultString("Juan");
>             throw new SOAPFaultException(fault);
>         } catch(SOAPException se) {
>         }
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (CXF-1785) wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-1785.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.1.7
         Assignee: Daniel Kulp  (was: Sean O'Callaghan)

The attached test case, which indeed fails with 2.1.4, runs fine with 2.1.7 so marking resolved.

> wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR
> ----------------------------------------------------------------------------------
>
>                 Key: CXF-1785
>                 URL: https://issues.apache.org/jira/browse/CXF-1785
>             Project: CXF
>          Issue Type: Bug
>          Components: OtherDatabindings
>    Affects Versions: 2.1
>         Environment: WinXP Pro SP3, Java 1.6, Spring 2.5, XmlBeans 2.3.0, CXF 2.1
>            Reporter: Juan Velez
>            Assignee: Daniel Kulp
>             Fix For: 2.1.7
>
>         Attachments: CXFTestXmlBeansHeader.rar, MMI CXF.zip
>
>
> I have created my own WSDL and its corresponding service and implementation classes (annotated of course). When I do not use the wsdlLocation attribute on jaxws:endpoint, the request I send to the service works fine, but when I specify the wsdlLocation attribute, I get a NullPointerException/UNMARSHAL_ERROR from the XmlBeans databinding used by CXF. Any ideas where I am not doing it correctly?
> Error
> java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Sep 4, 2008 12:35:49 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: UNMARSHAL_ERROR
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:81)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         ... 26 more
> WSDL
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="mmi"
>                   targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>                   xmlns:tns="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>                   xmlns:mmi="http://com.arevatd.mmi/xml">
>   <wsdl:types>
>     <xsd:schema targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                 xmlns="http://www.w3.org/2001/XMLSchema">
>       <import namespace="http://com.arevatd.mmi/xml"
>               schemaLocation="../xml/mmi.xsd" />
>     </xsd:schema>
>   </wsdl:types>
>   <wsdl:message name="ExportRequestMessage">
>     <wsdl:part name="request" element="mmi:ExportRequestMessage" />
>   </wsdl:message>
>   <wsdl:portType name="MMIExportRequestPortType">
>     <wsdl:operation name="performExportRequest">
>       <wsdl:input message="tns:ExportRequestMessage" />
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="MMIExportRequestSoapBinding" type="tns:MMIExportRequestPortType">
>     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
>     <wsdl:operation name="performExportRequest">
>       <soap:operation soapAction="performExportRequest" style="document" />
>       <wsdl:input>
>         <soap:body use="literal" />
>       </wsdl:input>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="MMIExportRequestService">
>       <wsdl:port name="MMIExportRequestPort" binding="tns:MMIExportRequestSoapBinding">
>       <soap:address location="http://localhost:8080/mmi/services/export" />
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
> XML SCHEMA
> <?xml version="1.0" encoding="UTF-8"?>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
>         targetNamespace="http://com.arevatd.mmi/xml"
>         xmlns:mmi="http://com.arevatd.mmi/xml"
>         elementFormDefault="qualified">
>         <complexType name="ExportRequestMessageType">
>                 <all>
>                         <element minOccurs="1" maxOccurs="1" name="application"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="environment"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="directoryName" type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="filename"      type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="requestId"     type="string" />
>                 </all>
>         </complexType>
>         <element name="ExportRequestMessage" type="mmi:ExportRequestMessageType" />
> </schema>
> CXF-servlet.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- Configuration File for CXF -->
> <beans xmlns="http://www.springframework.org/schema/beans"
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>        xmlns:jaxws="http://cxf.apache.org/jaxws"
>        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
>        
>     <import resource="classpath:META-INF/cxf/cxf.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>    
>     <bean id="exportService" class="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl" scope="prototype" />
>    
>     <bean id="xmlBeansBean" class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" scope="prototype" />
>     <bean id="exportServiceFactory" class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean" scope="singleton">
>       <property name="dataBinding" ref="xmlBeansBean" />
>     </bean>
>     <jaxws:endpoint id="exportServiceEndPoint"
>                     implementor="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl"
>                     address="/export"
>                     wsdlLocation="wsdl/mmi.wsdl" >
>         <jaxws:serviceFactory>
>             <ref bean="exportServiceFactory" />
>         </jaxws:serviceFactory>
>     </jaxws:endpoint>
> </beans>
> Service Class
> package com.arevatd.mmi.business.services;
> import javax.jws.Oneway;
> import javax.jws.WebMethod;
> import javax.jws.WebParam;
> import javax.jws.WebService;
> import javax.jws.soap.SOAPBinding;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Interface for the Import Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(name="MMIExportRequestPortType",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl")
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
> public interface CmiModelDataExportWs {
>     /**
>      * The actual operation for this web service: perform an export of CMI Model Data
>      *
>      * @param request The Request to export a e-terrasource export project
>      */
>     @WebMethod(operationName = "performExportRequest", action = "performExportRequest")
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @Oneway()
>     public void exportCmiModelData(
>         @WebParam(targetNamespace = "http://com.arevatd.mmi/xml",
>                   partName="request",
>                   name = "ExportRequestMessage")
>         ExportRequestMessageType request);
> }
> Service Implementation Class
> package com.arevatd.mmi.business.services.support;
> import java.util.logging.Logger;
> import javax.jws.WebService;
> import javax.xml.namespace.QName;
> import javax.xml.soap.SOAPException;
> import javax.xml.soap.SOAPFactory;
> import javax.xml.soap.SOAPFault;
> import javax.xml.ws.BindingType;
> import javax.xml.ws.soap.SOAPFaultException;
> import com.arevatd.mmi.business.services.CmiModelDataExportWs;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Implementation for the CmiModelDataExportWs Web Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(endpointInterface="com.arevatd.mmi.business.services.CmiModelDataExportWs",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl",
>             portName="MMIExportRequestPort",
>             serviceName="MMIExportRequestService",
>             name="MMIExportRequestPortType")
> @BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
> public class CmiModelDataExportWsImpl implements CmiModelDataExportWs {
>     private final Logger logger = Logger.getLogger(this.getClass().getName());
>     public void exportCmiModelData(ExportRequestMessageType request) /*throws ExportRequestFault*/ {
>         logger.info("Application=" + request.getApplication());
>         logger.info("Environment=" + request.getEnvironment());
>         logger.info("Directory=" + request.getDirectoryName());
>         logger.info("File=" + request.getFilename());
>         logger.info("Export Request Id=" + request.getRequestId());
>        
>         try {
>             SOAPFactory soapFactory = SOAPFactory.newInstance();
>             SOAPFault fault = soapFactory.createFault("Hello",
>                 new QName("http://schemas.xmlsoap.org/soap/envelope/", "Client"));
>             fault.setFaultString("Juan");
>             throw new SOAPFaultException(fault);
>         } catch(SOAPException se) {
>         }
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (CXF-1785) wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp updated CXF-1785:
-----------------------------

    Component/s: OtherDatabindings

> wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR
> ----------------------------------------------------------------------------------
>
>                 Key: CXF-1785
>                 URL: https://issues.apache.org/jira/browse/CXF-1785
>             Project: CXF
>          Issue Type: Bug
>          Components: OtherDatabindings
>    Affects Versions: 2.1
>         Environment: WinXP Pro SP3, Java 1.6, Spring 2.5, XmlBeans 2.3.0, CXF 2.1
>            Reporter: Juan Velez
>            Assignee: Sean O'Callaghan
>         Attachments: CXFTestXmlBeansHeader.rar, MMI CXF.zip
>
>
> I have created my own WSDL and its corresponding service and implementation classes (annotated of course). When I do not use the wsdlLocation attribute on jaxws:endpoint, the request I send to the service works fine, but when I specify the wsdlLocation attribute, I get a NullPointerException/UNMARSHAL_ERROR from the XmlBeans databinding used by CXF. Any ideas where I am not doing it correctly?
> Error
> java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Sep 4, 2008 12:35:49 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: UNMARSHAL_ERROR
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:81)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         ... 26 more
> WSDL
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="mmi"
>                   targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>                   xmlns:tns="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>                   xmlns:mmi="http://com.arevatd.mmi/xml">
>   <wsdl:types>
>     <xsd:schema targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                 xmlns="http://www.w3.org/2001/XMLSchema">
>       <import namespace="http://com.arevatd.mmi/xml"
>               schemaLocation="../xml/mmi.xsd" />
>     </xsd:schema>
>   </wsdl:types>
>   <wsdl:message name="ExportRequestMessage">
>     <wsdl:part name="request" element="mmi:ExportRequestMessage" />
>   </wsdl:message>
>   <wsdl:portType name="MMIExportRequestPortType">
>     <wsdl:operation name="performExportRequest">
>       <wsdl:input message="tns:ExportRequestMessage" />
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="MMIExportRequestSoapBinding" type="tns:MMIExportRequestPortType">
>     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
>     <wsdl:operation name="performExportRequest">
>       <soap:operation soapAction="performExportRequest" style="document" />
>       <wsdl:input>
>         <soap:body use="literal" />
>       </wsdl:input>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="MMIExportRequestService">
>       <wsdl:port name="MMIExportRequestPort" binding="tns:MMIExportRequestSoapBinding">
>       <soap:address location="http://localhost:8080/mmi/services/export" />
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
> XML SCHEMA
> <?xml version="1.0" encoding="UTF-8"?>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
>         targetNamespace="http://com.arevatd.mmi/xml"
>         xmlns:mmi="http://com.arevatd.mmi/xml"
>         elementFormDefault="qualified">
>         <complexType name="ExportRequestMessageType">
>                 <all>
>                         <element minOccurs="1" maxOccurs="1" name="application"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="environment"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="directoryName" type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="filename"      type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="requestId"     type="string" />
>                 </all>
>         </complexType>
>         <element name="ExportRequestMessage" type="mmi:ExportRequestMessageType" />
> </schema>
> CXF-servlet.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- Configuration File for CXF -->
> <beans xmlns="http://www.springframework.org/schema/beans"
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>        xmlns:jaxws="http://cxf.apache.org/jaxws"
>        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
>        
>     <import resource="classpath:META-INF/cxf/cxf.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>    
>     <bean id="exportService" class="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl" scope="prototype" />
>    
>     <bean id="xmlBeansBean" class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" scope="prototype" />
>     <bean id="exportServiceFactory" class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean" scope="singleton">
>       <property name="dataBinding" ref="xmlBeansBean" />
>     </bean>
>     <jaxws:endpoint id="exportServiceEndPoint"
>                     implementor="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl"
>                     address="/export"
>                     wsdlLocation="wsdl/mmi.wsdl" >
>         <jaxws:serviceFactory>
>             <ref bean="exportServiceFactory" />
>         </jaxws:serviceFactory>
>     </jaxws:endpoint>
> </beans>
> Service Class
> package com.arevatd.mmi.business.services;
> import javax.jws.Oneway;
> import javax.jws.WebMethod;
> import javax.jws.WebParam;
> import javax.jws.WebService;
> import javax.jws.soap.SOAPBinding;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Interface for the Import Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(name="MMIExportRequestPortType",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl")
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
> public interface CmiModelDataExportWs {
>     /**
>      * The actual operation for this web service: perform an export of CMI Model Data
>      *
>      * @param request The Request to export a e-terrasource export project
>      */
>     @WebMethod(operationName = "performExportRequest", action = "performExportRequest")
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @Oneway()
>     public void exportCmiModelData(
>         @WebParam(targetNamespace = "http://com.arevatd.mmi/xml",
>                   partName="request",
>                   name = "ExportRequestMessage")
>         ExportRequestMessageType request);
> }
> Service Implementation Class
> package com.arevatd.mmi.business.services.support;
> import java.util.logging.Logger;
> import javax.jws.WebService;
> import javax.xml.namespace.QName;
> import javax.xml.soap.SOAPException;
> import javax.xml.soap.SOAPFactory;
> import javax.xml.soap.SOAPFault;
> import javax.xml.ws.BindingType;
> import javax.xml.ws.soap.SOAPFaultException;
> import com.arevatd.mmi.business.services.CmiModelDataExportWs;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Implementation for the CmiModelDataExportWs Web Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(endpointInterface="com.arevatd.mmi.business.services.CmiModelDataExportWs",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl",
>             portName="MMIExportRequestPort",
>             serviceName="MMIExportRequestService",
>             name="MMIExportRequestPortType")
> @BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
> public class CmiModelDataExportWsImpl implements CmiModelDataExportWs {
>     private final Logger logger = Logger.getLogger(this.getClass().getName());
>     public void exportCmiModelData(ExportRequestMessageType request) /*throws ExportRequestFault*/ {
>         logger.info("Application=" + request.getApplication());
>         logger.info("Environment=" + request.getEnvironment());
>         logger.info("Directory=" + request.getDirectoryName());
>         logger.info("File=" + request.getFilename());
>         logger.info("Export Request Id=" + request.getRequestId());
>        
>         try {
>             SOAPFactory soapFactory = SOAPFactory.newInstance();
>             SOAPFault fault = soapFactory.createFault("Hello",
>                 new QName("http://schemas.xmlsoap.org/soap/envelope/", "Client"));
>             fault.setFaultString("Juan");
>             throw new SOAPFaultException(fault);
>         } catch(SOAPException se) {
>         }
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (CXF-1785) wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR

Posted by "Sean O'Callaghan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sean O'Callaghan reassigned CXF-1785:
-------------------------------------

    Assignee: Sean O'Callaghan

> wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR
> ----------------------------------------------------------------------------------
>
>                 Key: CXF-1785
>                 URL: https://issues.apache.org/jira/browse/CXF-1785
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.1
>         Environment: WinXP Pro SP3, Java 1.6, Spring 2.5, XmlBeans 2.3.0, CXF 2.1
>            Reporter: Juan Velez
>            Assignee: Sean O'Callaghan
>         Attachments: MMI CXF.zip
>
>
> I have created my own WSDL and its corresponding service and implementation classes (annotated of course). When I do not use the wsdlLocation attribute on jaxws:endpoint, the request I send to the service works fine, but when I specify the wsdlLocation attribute, I get a NullPointerException/UNMARSHAL_ERROR from the XmlBeans databinding used by CXF. Any ideas where I am not doing it correctly?
> Error
> java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Sep 4, 2008 12:35:49 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: UNMARSHAL_ERROR
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:81)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         ... 26 more
> WSDL
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="mmi"
>                   targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>                   xmlns:tns="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>                   xmlns:mmi="http://com.arevatd.mmi/xml">
>   <wsdl:types>
>     <xsd:schema targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                 xmlns="http://www.w3.org/2001/XMLSchema">
>       <import namespace="http://com.arevatd.mmi/xml"
>               schemaLocation="../xml/mmi.xsd" />
>     </xsd:schema>
>   </wsdl:types>
>   <wsdl:message name="ExportRequestMessage">
>     <wsdl:part name="request" element="mmi:ExportRequestMessage" />
>   </wsdl:message>
>   <wsdl:portType name="MMIExportRequestPortType">
>     <wsdl:operation name="performExportRequest">
>       <wsdl:input message="tns:ExportRequestMessage" />
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="MMIExportRequestSoapBinding" type="tns:MMIExportRequestPortType">
>     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
>     <wsdl:operation name="performExportRequest">
>       <soap:operation soapAction="performExportRequest" style="document" />
>       <wsdl:input>
>         <soap:body use="literal" />
>       </wsdl:input>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="MMIExportRequestService">
>       <wsdl:port name="MMIExportRequestPort" binding="tns:MMIExportRequestSoapBinding">
>       <soap:address location="http://localhost:8080/mmi/services/export" />
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
> XML SCHEMA
> <?xml version="1.0" encoding="UTF-8"?>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
>         targetNamespace="http://com.arevatd.mmi/xml"
>         xmlns:mmi="http://com.arevatd.mmi/xml"
>         elementFormDefault="qualified">
>         <complexType name="ExportRequestMessageType">
>                 <all>
>                         <element minOccurs="1" maxOccurs="1" name="application"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="environment"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="directoryName" type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="filename"      type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="requestId"     type="string" />
>                 </all>
>         </complexType>
>         <element name="ExportRequestMessage" type="mmi:ExportRequestMessageType" />
> </schema>
> CXF-servlet.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- Configuration File for CXF -->
> <beans xmlns="http://www.springframework.org/schema/beans"
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>        xmlns:jaxws="http://cxf.apache.org/jaxws"
>        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
>        
>     <import resource="classpath:META-INF/cxf/cxf.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>    
>     <bean id="exportService" class="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl" scope="prototype" />
>    
>     <bean id="xmlBeansBean" class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" scope="prototype" />
>     <bean id="exportServiceFactory" class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean" scope="singleton">
>       <property name="dataBinding" ref="xmlBeansBean" />
>     </bean>
>     <jaxws:endpoint id="exportServiceEndPoint"
>                     implementor="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl"
>                     address="/export"
>                     wsdlLocation="wsdl/mmi.wsdl" >
>         <jaxws:serviceFactory>
>             <ref bean="exportServiceFactory" />
>         </jaxws:serviceFactory>
>     </jaxws:endpoint>
> </beans>
> Service Class
> package com.arevatd.mmi.business.services;
> import javax.jws.Oneway;
> import javax.jws.WebMethod;
> import javax.jws.WebParam;
> import javax.jws.WebService;
> import javax.jws.soap.SOAPBinding;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Interface for the Import Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(name="MMIExportRequestPortType",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl")
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
> public interface CmiModelDataExportWs {
>     /**
>      * The actual operation for this web service: perform an export of CMI Model Data
>      *
>      * @param request The Request to export a e-terrasource export project
>      */
>     @WebMethod(operationName = "performExportRequest", action = "performExportRequest")
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @Oneway()
>     public void exportCmiModelData(
>         @WebParam(targetNamespace = "http://com.arevatd.mmi/xml",
>                   partName="request",
>                   name = "ExportRequestMessage")
>         ExportRequestMessageType request);
> }
> Service Implementation Class
> package com.arevatd.mmi.business.services.support;
> import java.util.logging.Logger;
> import javax.jws.WebService;
> import javax.xml.namespace.QName;
> import javax.xml.soap.SOAPException;
> import javax.xml.soap.SOAPFactory;
> import javax.xml.soap.SOAPFault;
> import javax.xml.ws.BindingType;
> import javax.xml.ws.soap.SOAPFaultException;
> import com.arevatd.mmi.business.services.CmiModelDataExportWs;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Implementation for the CmiModelDataExportWs Web Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(endpointInterface="com.arevatd.mmi.business.services.CmiModelDataExportWs",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl",
>             portName="MMIExportRequestPort",
>             serviceName="MMIExportRequestService",
>             name="MMIExportRequestPortType")
> @BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
> public class CmiModelDataExportWsImpl implements CmiModelDataExportWs {
>     private final Logger logger = Logger.getLogger(this.getClass().getName());
>     public void exportCmiModelData(ExportRequestMessageType request) /*throws ExportRequestFault*/ {
>         logger.info("Application=" + request.getApplication());
>         logger.info("Environment=" + request.getEnvironment());
>         logger.info("Directory=" + request.getDirectoryName());
>         logger.info("File=" + request.getFilename());
>         logger.info("Export Request Id=" + request.getRequestId());
>        
>         try {
>             SOAPFactory soapFactory = SOAPFactory.newInstance();
>             SOAPFault fault = soapFactory.createFault("Hello",
>                 new QName("http://schemas.xmlsoap.org/soap/envelope/", "Client"));
>             fault.setFaultString("Juan");
>             throw new SOAPFaultException(fault);
>         } catch(SOAPException se) {
>         }
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CXF-1785) wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR

Posted by "Juan Velez (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12634179#action_12634179 ] 

Juan Velez commented on CXF-1785:
---------------------------------

Hi Sean:

Thanks for looking into this. Unfortunately besides the documentation 
provided as part of this Issue, there is no longer a test case as my team 
and I decided (some weeks ago) no longer to use XmlBeans as the XML Data 
Binding for CXF given the many issues/bugs with it. We have moved to using 
JAXB as the XML Data Binding for CXF. 

Let me know if any specific file is needed so you can recreate the problem

Thank you,

Juan Andres VELEZ CADAVID
Senior Software Engineer
AREVA T&D Inc.
10865 Willows Road NE
Redmond, WA  98052-2502
Tel: +1(425) 250-2628
Fax: +1(425) 250-1400
E-Mail: juan.velez@areva-td.com

CONFIDENTIALITY:  This e-mail and any attachments are confidential and may 
be privileged.
If  you are not a named recipient, please notify the sender immediately 
and do not disclose the 
contents to another person,  use it for any purpose or store or copy the 
information in any medium.




"Sean O'Callaghan (JIRA)" <ji...@apache.org> 
24-09-08 08:30 AM

To
Juan VELEZ/USBVE01/TDE/AREVA-TD@ATD
cc

Subject
[jira] Commented: (CXF-1785) wsdlLocation attribute and XmlBeans: Getting 
NullPointerException/UNMARSHALL_ERROR







    [ 
https://issues.apache.org/jira/browse/CXF-1785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12634167#action_12634167 
] 

Sean O'Callaghan commented on CXF-1785:
---------------------------------------

Hi Juan,

Do you have a simple testcase which I could use to recreate this problem?

Regards,

Seán.

NullPointerException/UNMARSHALL_ERROR
----------------------------------------------------------------------------------
2.3.0, CXF 2.1
implementation classes (annotated of course). When I do not use the 
wsdlLocation attribute on jaxws:endpoint, the request I send to the 
service works fine, but when I specify the wsdlLocation attribute, I get a 
NullPointerException/UNMARSHAL_ERROR from the XmlBeans databinding used by 
CXF. Any ideas where I am not doing it correctly?
org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
doIntercept
org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:81)
org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
type="tns:MMIExportRequestPortType">
http://schemas.xmlsoap.org/soap/http" />
/>
binding="tns:MMIExportRequestSoapBinding">
/>
name="application"   type="string" />
name="environment"   type="string" />
name="directoryName" type="string" />
name="filename"      type="string" />
name="requestId"     type="string" />
type="mmi:ExportRequestMessageType" />
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
class="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl" 
scope="prototype" />
class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" scope="prototype" />
class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean" 
scope="singleton">
implementor="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl"
CMI Model Data
project
"performExportRequest")
@WebService(endpointInterface="com.arevatd.mmi.business.services.CmiModelDataExportWs",
Logger.getLogger(this.getClass().getName());
/*throws ExportRequestFault*/ {
"Client"));

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.





> wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR
> ----------------------------------------------------------------------------------
>
>                 Key: CXF-1785
>                 URL: https://issues.apache.org/jira/browse/CXF-1785
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.1
>         Environment: WinXP Pro SP3, Java 1.6, Spring 2.5, XmlBeans 2.3.0, CXF 2.1
>            Reporter: Juan Velez
>            Assignee: Sean O'Callaghan
>         Attachments: MMI CXF.zip
>
>
> I have created my own WSDL and its corresponding service and implementation classes (annotated of course). When I do not use the wsdlLocation attribute on jaxws:endpoint, the request I send to the service works fine, but when I specify the wsdlLocation attribute, I get a NullPointerException/UNMARSHAL_ERROR from the XmlBeans databinding used by CXF. Any ideas where I am not doing it correctly?
> Error
> java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Sep 4, 2008 12:35:49 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: UNMARSHAL_ERROR
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:81)
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:43)
>         at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:183)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>         at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
>         at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
>         at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
>         at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramContextFilter.java:56)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NullPointerException
>         at org.apache.cxf.xmlbeans.DataReaderImpl.read(DataReaderImpl.java:73)
>         ... 26 more
> WSDL
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="mmi"
>                   targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>                   xmlns:tns="http://com.arevatd.mmi/xml/wsdl"
>                   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>                   xmlns:mmi="http://com.arevatd.mmi/xml">
>   <wsdl:types>
>     <xsd:schema targetNamespace="http://com.arevatd.mmi/xml/wsdl"
>                 xmlns="http://www.w3.org/2001/XMLSchema">
>       <import namespace="http://com.arevatd.mmi/xml"
>               schemaLocation="../xml/mmi.xsd" />
>     </xsd:schema>
>   </wsdl:types>
>   <wsdl:message name="ExportRequestMessage">
>     <wsdl:part name="request" element="mmi:ExportRequestMessage" />
>   </wsdl:message>
>   <wsdl:portType name="MMIExportRequestPortType">
>     <wsdl:operation name="performExportRequest">
>       <wsdl:input message="tns:ExportRequestMessage" />
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="MMIExportRequestSoapBinding" type="tns:MMIExportRequestPortType">
>     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
>     <wsdl:operation name="performExportRequest">
>       <soap:operation soapAction="performExportRequest" style="document" />
>       <wsdl:input>
>         <soap:body use="literal" />
>       </wsdl:input>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="MMIExportRequestService">
>       <wsdl:port name="MMIExportRequestPort" binding="tns:MMIExportRequestSoapBinding">
>       <soap:address location="http://localhost:8080/mmi/services/export" />
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
> XML SCHEMA
> <?xml version="1.0" encoding="UTF-8"?>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
>         targetNamespace="http://com.arevatd.mmi/xml"
>         xmlns:mmi="http://com.arevatd.mmi/xml"
>         elementFormDefault="qualified">
>         <complexType name="ExportRequestMessageType">
>                 <all>
>                         <element minOccurs="1" maxOccurs="1" name="application"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="environment"   type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="directoryName" type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="filename"      type="string" />
>                         <element minOccurs="1" maxOccurs="1" name="requestId"     type="string" />
>                 </all>
>         </complexType>
>         <element name="ExportRequestMessage" type="mmi:ExportRequestMessageType" />
> </schema>
> CXF-servlet.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- Configuration File for CXF -->
> <beans xmlns="http://www.springframework.org/schema/beans"
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>        xmlns:jaxws="http://cxf.apache.org/jaxws"
>        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
>        
>     <import resource="classpath:META-INF/cxf/cxf.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>    
>     <bean id="exportService" class="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl" scope="prototype" />
>    
>     <bean id="xmlBeansBean" class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" scope="prototype" />
>     <bean id="exportServiceFactory" class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean" scope="singleton">
>       <property name="dataBinding" ref="xmlBeansBean" />
>     </bean>
>     <jaxws:endpoint id="exportServiceEndPoint"
>                     implementor="com.arevatd.mmi.business.services.support.CmiModelDataExportWsImpl"
>                     address="/export"
>                     wsdlLocation="wsdl/mmi.wsdl" >
>         <jaxws:serviceFactory>
>             <ref bean="exportServiceFactory" />
>         </jaxws:serviceFactory>
>     </jaxws:endpoint>
> </beans>
> Service Class
> package com.arevatd.mmi.business.services;
> import javax.jws.Oneway;
> import javax.jws.WebMethod;
> import javax.jws.WebParam;
> import javax.jws.WebService;
> import javax.jws.soap.SOAPBinding;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Interface for the Import Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(name="MMIExportRequestPortType",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl")
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
> public interface CmiModelDataExportWs {
>     /**
>      * The actual operation for this web service: perform an export of CMI Model Data
>      *
>      * @param request The Request to export a e-terrasource export project
>      */
>     @WebMethod(operationName = "performExportRequest", action = "performExportRequest")
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @Oneway()
>     public void exportCmiModelData(
>         @WebParam(targetNamespace = "http://com.arevatd.mmi/xml",
>                   partName="request",
>                   name = "ExportRequestMessage")
>         ExportRequestMessageType request);
> }
> Service Implementation Class
> package com.arevatd.mmi.business.services.support;
> import java.util.logging.Logger;
> import javax.jws.WebService;
> import javax.xml.namespace.QName;
> import javax.xml.soap.SOAPException;
> import javax.xml.soap.SOAPFactory;
> import javax.xml.soap.SOAPFault;
> import javax.xml.ws.BindingType;
> import javax.xml.ws.soap.SOAPFaultException;
> import com.arevatd.mmi.business.services.CmiModelDataExportWs;
> import mmi.arevatd.com.xml.ExportRequestMessageType;
> /**
>  * Implementation for the CmiModelDataExportWs Web Service
>  *
>  * @author jvelez
>  *
>  */
> @WebService(endpointInterface="com.arevatd.mmi.business.services.CmiModelDataExportWs",
>             targetNamespace="http://com.arevatd.mmi/xml/wsdl",
>             portName="MMIExportRequestPort",
>             serviceName="MMIExportRequestService",
>             name="MMIExportRequestPortType")
> @BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
> public class CmiModelDataExportWsImpl implements CmiModelDataExportWs {
>     private final Logger logger = Logger.getLogger(this.getClass().getName());
>     public void exportCmiModelData(ExportRequestMessageType request) /*throws ExportRequestFault*/ {
>         logger.info("Application=" + request.getApplication());
>         logger.info("Environment=" + request.getEnvironment());
>         logger.info("Directory=" + request.getDirectoryName());
>         logger.info("File=" + request.getFilename());
>         logger.info("Export Request Id=" + request.getRequestId());
>        
>         try {
>             SOAPFactory soapFactory = SOAPFactory.newInstance();
>             SOAPFault fault = soapFactory.createFault("Hello",
>                 new QName("http://schemas.xmlsoap.org/soap/envelope/", "Client"));
>             fault.setFaultString("Juan");
>             throw new SOAPFaultException(fault);
>         } catch(SOAPException se) {
>         }
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.