java.lang.ClassNotFoundException: com.sun.xml.ws.developer.StreamingDataHandler
jzy002 Sep 23, 2011 2:35 AMHello everyone!
I am new comer here and I encounter a problem that when I deploy a file upload and download server under JBOSS5.1 using eclipse. I have spent two weeks in searching the solutions using Google, but still has no useful answers.The jbossws I using is jbossws-native-3.2.0.GA.
The server side code like this:
package org.example.www.filetransmission;
import org.example.www.filetransmission.FileTransmission;
import java.io.File;
import javax.activation.DataHandler;
import javax.jws.WebService;
import javax.xml.ws.WebServiceException;
import javax.xml.ws.soap.MTOM;
import com.sun.xml.ws.developer.StreamingDataHandler;
@MTOM
@WebService(name = "FileTransmissionImpl", serviceName = "FileTransmission", endpointInterface = "org.example.www.filetransmission.FileTransmission")
public class FileTransmissionImpl implements FileTransmission {
public String upload(DataHandler data) {
try {
StreamingDataHandler dh = (StreamingDataHandler) data;
File file = new File("C://test1");
dh.moveTo(file);
dh.close();
return "";
} catch (Exception e) {
throw new WebServiceException(e);
}
}
public DataHandler download(String filePath) {
return null;
}
}
The client code like this:
package org.example.www.filetransmission.clientsample;
import java.util.Map;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.xml.namespace.QName;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.soap.MTOMFeature;
import org.example.www.filetransmission.FileTransmission;
import org.example.www.filetransmission.FileTransmission_Service;
import com.sun.xml.ws.developer.JAXWSProperties;
public class ClientSample {
public static void main(String[] args) {
System.out.println("***********************");
System.out.println("Create Web Service Client...");
FileTransmission_Service service1 = new FileTransmission_Service();
System.out.println("Create Web Service...");
FileTransmission port = service1.getPort(new QName("http://www.example.org/FileTransmission/", "FileTransmissionSOAP"), FileTransmission.class,new MTOMFeature());
System.out.println("Call Web Service Operation...");
Map<String, Object> ctxt=((BindingProvider)port).getRequestContext();
ctxt.put(JAXWSProperties.HTTP_CLIENT_STREAMING_CHUNK_SIZE, 8192);
System.out.println("Server said: " + port.upload(new DataHandler(new FileDataSource("C:\test"))));
System.out.println(port.upload(new DataHandler(new FileDataSource("C://test"))));
System.out.println("Server said: " + port.download(""));
System.out.println("***********************");
System.out.println("Call Over!");
}
}
But when run the test, there comes the problems like this:
ERROR [InvocationHandlerJAXWS] Method invocation failed with exception: null
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jboss.webservices.integration.invocation.AbstractInvocationHandlerJSE.invoke(AbstractInvocationHandlerJSE.java:129)
at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:222)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:468)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:294)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:204)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:130)
at org.jboss.wsf.common.servlet.AbstractEndpointServlet.service(AbstractEndpointServlet.java:87)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
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:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NoClassDefFoundError: com/sun/xml/ws/developer/StreamingDataHandler
at org.example.www.filetransmission.FileTransmissionImpl.upload(FileTransmissionImpl.java:23)
... 32 more
Caused by: java.lang.ClassNotFoundException: com.sun.xml.ws.developer.StreamingDataHandler from BaseClassLoader@162764f{VFSClassLoaderPolicy@1456c6e{name=vfsfile:/C:/Users/denchao/workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1316420898164/deploy/FileTransmissionEAR.ear/FileTransmission.war/ domain=ClassLoaderDomain@1e02801{name=vfsfile:/C:/Users/denchao/workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1316420898164/deploy/FileTransmissionEAR.ear/FileTransmission.war/ parentPolicy=AFTER_BUT_JAVA_BEFORE parent=BaseClassLoader@c47d73{vfsfile:/C:/Users/denchao/workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1316420898164/deploy/FileTransmissionEAR.ear/}} roots=[FileHandler@13754567[path=FileTransmissionEAR.ear/FileTransmission.war/WEB-INF/classes context=file:/C:/Users/denchao/workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1316420898164/deploy/ real=file:/C:/Users/denchao/workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1316420898164/deploy/FileTransmissionEAR.ear/FileTransmission.war/WEB-INF/classes/]] delegates=null exported=[org.example.www.filetransmission.clientsample, org.example.www.filetransmission] <IMPORT-ALL>NON_EMPTY}}
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:448)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 33 more
17:01:52,370 ERROR [SOAPFaultHelperJAXWS] SOAP request exception
java.lang.reflect.UndeclaredThrowableException
at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:228)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:468)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:294)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:204)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:130)
at org.jboss.wsf.common.servlet.AbstractEndpointServlet.service(AbstractEndpointServlet.java:87)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
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:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NoClassDefFoundError: com/sun/xml/ws/developer/StreamingDataHandler
at org.example.www.filetransmission.FileTransmissionImpl.upload(FileTransmissionImpl.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jboss.webservices.integration.invocation.AbstractInvocationHandlerJSE.invoke(AbstractInvocationHandlerJSE.java:129)
at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:222)
... 26 more
Caused by: java.lang.ClassNotFoundException: com.sun.xml.ws.developer.StreamingDataHandler from BaseClassLoader@162764f{VFSClassLoaderPolicy@1456c6e{name=vfsfile:/C:/Users/denchao/workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1316420898164/deploy/FileTransmissionEAR.ear/FileTransmission.war/ domain=ClassLoaderDomain@1e02801{name=vfsfile:/C:/Users/denchao/workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1316420898164/deploy/FileTransmissionEAR.ear/FileTransmission.war/ parentPolicy=AFTER_BUT_JAVA_BEFORE parent=BaseClassLoader@c47d73{vfsfile:/C:/Users/denchao/workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1316420898164/deploy/FileTransmissionEAR.ear/}} roots=[FileHandler@13754567[path=FileTransmissionEAR.ear/FileTransmission.war/WEB-INF/classes context=file:/C:/Users/denchao/workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1316420898164/deploy/ real=file:/C:/Users/denchao/workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1316420898164/deploy/FileTransmissionEAR.ear/FileTransmission.war/WEB-INF/classes/]] delegates=null exported=[org.example.www.filetransmission.clientsample, org.example.www.filetransmission] <IMPORT-ALL>NON_EMPTY}}
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:448)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 33 more
Can anyone gives me some hints to solve this? I follow the example inhttp://download.oracle.com/docs/cd/E12840_01/wls/docs103/webserv_adv/mtom.html
Thanks very much!