请问抛出No Content-type in the header!该怎么解决?
异常如下:
javax.xml.ws.WebServiceException: No Content-type in the header!
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:165)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:88)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436)
at com.sun.xml.ws.client.Stub.process(Stub.java:248)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:134)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:244)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:224)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:117)
at $Proxy29.sayHello(Unknown Source)
at com.foshanshop.AppTest.TestHelloWorld.main(TestHelloWorld.java:11)
我的测试代码如下:
package com.foshanshop.AppTest;import com.foshanshop.ws.client.HelloWorld;
import com.foshanshop.ws.client.HelloWorldService;public class TestHelloWorld {
public static void main(String[] args) {
try {
HelloWorldService service = new HelloWorldService();
HelloWorld helloWorld = service.getHelloWorldPort();
String result = helloWorld.sayHello("James");
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}build.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- ======================================================================= -->
<!-- EJB3 WSClient build file -->
<!-- ======================================================================= -->
<project name="WSClient" default="wsclientgen" basedir="..">
<property name="app.dir" value="${basedir}/WSClient" />
<property name="src.dir" value="${app.dir}/src" />
<!-- Build classpath -->
<path id="build.classpath" description="build classpath">
<fileset dir="${basedir}/lib/JAX-WS2.1.2">
<include name="*.jar"/>
</fileset>
</path>
<!-- ================================================================== -->
<!-- Generating sources -->
<!-- ================================================================== -->
<target name="wsclientgen" description="generate source">
<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport" classpathref="build.classpath"/>
<wsimport wsdl="http://127.0.0.1:8080/Services/HelloWorldService?wsdl"
sourcedestdir="${src.dir}" package="com.foshanshop.ws.client" keep="true"
verbose="true" destdir="${app.dir}/bin"/>
</target>
</project>启动jboss服务器,可以看到
Registered Service EndpointsEndpoint Name jboss.ws:context=Services,endpoint=HelloWorldService
Endpoint Address http://127.0.0.1:8080/Services/HelloWorldService?wsdl
StartTime StopTime
Sat Sep 27 14:36:24 CST 2008
RequestCount ResponseCount FaultCount
0 0 0
MinProcessingTime MaxProcessingTime AvgProcessingTime
0 0 0
可以看到http://127.0.0.1:8080/Services/HelloWorldService?wsdl的内容。
异常如下:
javax.xml.ws.WebServiceException: No Content-type in the header!
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:165)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:88)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436)
at com.sun.xml.ws.client.Stub.process(Stub.java:248)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:134)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:244)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:224)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:117)
at $Proxy29.sayHello(Unknown Source)
at com.foshanshop.AppTest.TestHelloWorld.main(TestHelloWorld.java:11)
我的测试代码如下:
package com.foshanshop.AppTest;import com.foshanshop.ws.client.HelloWorld;
import com.foshanshop.ws.client.HelloWorldService;public class TestHelloWorld {
public static void main(String[] args) {
try {
HelloWorldService service = new HelloWorldService();
HelloWorld helloWorld = service.getHelloWorldPort();
String result = helloWorld.sayHello("James");
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}build.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- ======================================================================= -->
<!-- EJB3 WSClient build file -->
<!-- ======================================================================= -->
<project name="WSClient" default="wsclientgen" basedir="..">
<property name="app.dir" value="${basedir}/WSClient" />
<property name="src.dir" value="${app.dir}/src" />
<!-- Build classpath -->
<path id="build.classpath" description="build classpath">
<fileset dir="${basedir}/lib/JAX-WS2.1.2">
<include name="*.jar"/>
</fileset>
</path>
<!-- ================================================================== -->
<!-- Generating sources -->
<!-- ================================================================== -->
<target name="wsclientgen" description="generate source">
<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport" classpathref="build.classpath"/>
<wsimport wsdl="http://127.0.0.1:8080/Services/HelloWorldService?wsdl"
sourcedestdir="${src.dir}" package="com.foshanshop.ws.client" keep="true"
verbose="true" destdir="${app.dir}/bin"/>
</target>
</project>启动jboss服务器,可以看到
Registered Service EndpointsEndpoint Name jboss.ws:context=Services,endpoint=HelloWorldService
Endpoint Address http://127.0.0.1:8080/Services/HelloWorldService?wsdl
StartTime StopTime
Sat Sep 27 14:36:24 CST 2008
RequestCount ResponseCount FaultCount
0 0 0
MinProcessingTime MaxProcessingTime AvgProcessingTime
0 0 0
可以看到http://127.0.0.1:8080/Services/HelloWorldService?wsdl的内容。
我也遇到了同样的问题..
因为我的项目是用过滤器编码的,再调用webService时被编码了.导至了这个问题..
我把过滤器去掉了就行了..
jbossws-native-jaxrpc.jar
jbossws-native-jaxws.jar
jbossws-native-jaxws-ext.jar
jbossws-native-saaj.jar
from (JBOSS_HOME/common/lib) to endorsed folder (JBOSS_HOME/lib/endorsed)