You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by "juan.velez" <ju...@areva-td.com> on 2008/09/04 21:40:00 UTC
wsdlLocation attribute and XmlBeans: Getting
NullPointerException/UNMARSHALL_ERROR
I have created my own WSDL and their 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) {
}
}
}
SOAP Request
<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>
--
View this message in context: http://www.nabble.com/wsdlLocation-attribute-and-XmlBeans%3A-Getting-NullPointerException-UNMARSHALL_ERROR-tp19318451p19318451.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: wsdlLocation attribute and XmlBeans: Getting NullPointerException/UNMARSHALL_ERROR
Posted by Daniel Kulp <dk...@apache.org>.
Can you log a JIRA and attach any samples showing this failing? I'm heading
on vacation for a few days so I cannot look at it now, but I certainly don't
want it getting lost.
Thanks!
Dan
On Thursday 04 September 2008 3:40:00 pm juan.velez wrote:
> I have created my own WSDL and their 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(DocLiteral
>InInterceptor.java:183) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
>n.java:221) at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationO
>bserver.java:78) at
> org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestinati
>on.java:92) at
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(Servle
>tController.java:214) at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController
>.java:151) at
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServl
>et.java:170) at
> org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServl
>et.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(Applicatio
>nFilterChain.java:290) at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC
>hain.java:206) at
> com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramCont
>extFilter.java:56) at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicatio
>nFilterChain.java:235) at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC
>hain.java:206) at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.j
>ava:233) at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.j
>ava:175) at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:12
>8) at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:10
>2) at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.jav
>a: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(Htt
>p11Protocol.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(DocLiteral
>InInterceptor.java:183) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
>n.java:221) at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationO
>bserver.java:78) at
> org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestinati
>on.java:92) at
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(Servle
>tController.java:214) at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController
>.java:151) at
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServl
>et.java:170) at
> org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServl
>et.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(Applicatio
>nFilterChain.java:290) at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC
>hain.java:206) at
> com.arevatd.mmi.pjm.filters.CLUProgramContextFilter.doFilter(CLUProgramCont
>extFilter.java:56) at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicatio
>nFilterChain.java:235) at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC
>hain.java:206) at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.j
>ava:233) at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.j
>ava:175) at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:12
>8) at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:10
>2) at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.jav
>a: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(Htt
>p11Protocol.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.CmiModelDataExportWs
>Impl" 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.CmiModelDa
>taExportWs", 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) {
> }
> }
> }
>
> SOAP Request
>
> <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>
--
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog