您好我正在尝试在Jboss 4.2.3GA中部署Web服务客户端应用程序。我已经这样做了,它适用于glassfish v2.x.我复制了jboss-saaj.jar,jboss-jaxws-ext.jar,jboss-jaxws.jar,jboss-jaxrpc.jar和jaxb-api.jar。有人可以提供一些信息吗?
我也在netbeans 6.7中部署了它。
# Caused by: java.io.IOException: Could not transmit message
# at org.jboss.ws.core.client.RemotingConnectionImpl.invoke(RemotingConnectionImpl.java:204)
# at org.jboss.ws.core.client.SOAPRemotingConnection.invoke(SOAPRemotingConnection.java:77)
# at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:337)
# at org.jboss.ws.core.jaxrpc.client.CallImpl.invokeInternal(CallImpl.java:517)
# ... 4 more
# Caused by: org.jboss.remoting.CannotConnectException: Can not connect http client invoker.
# at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:333)
# at org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:135)
# at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122)
# at org.jboss.remoting.Client.invoke(Client.java:1634)
# at org.jboss.remoting.Client.invoke(Client.java:548)
# at org.jboss.ws.core.client.RemotingConnectionImpl.invoke(RemotingConnectionImpl.java:183)
# ... 7 more
# Caused by: org.jboss.ws.WSException: Invalid HTTP server response [404] - Not Found
# at org.jboss.ws.core.soap.SOAPMessageUnMarshaller.read(SOAPMessageUnMarshaller.java:77)
# at org.jboss.remoting.transport.http.HTTPClientInvoker.readResponse(HTTPClientInvoker.java:473)
# at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:305)
# ... 12 more
我尝试使用版本4.2.2 GA将jboss-saaj.jar和jboss-jaxrpc.jar复制到/ lib / endorsement并且它可以工作。但是我也尝试使用5.1.0GA版本,它在那里不起作用。
为了简单起见,这是我想要帮助的。如果有人在jboss中部署了Web服务并且不得不将jar复制到某些文件夹,请告诉我你做了什么?如果您使用的是4.3.3GA或5.1.0GA,我更愿意。谢谢你的阅读。
答案 0 :(得分:2)
您还可以在
为您的实例配置 chunksizeSERVER_HOME / SERVER_PROFILE /部署者/ jbossws.deployer / META-INF /标准JAXWS客户端-config.xml中
更改
<property-value>2048</property-value>
到
<property-value>0</property-value>
属性
<client-config>
<config-name>Standard Client</config-name>
<feature>http://org.jboss.ws/dispatch/validate</feature>
<property>
<property-name>http://org.jboss.ws/http#chunksize</property-name>
</property>
</client-config>
有关详细信息,请参阅http://community.jboss.org/wiki/Workaroundwhenchunkedencodingisnotsupported。
答案 1 :(得分:1)
我在JBoss 5.0.1上也遇到了这个问题。我已经将jbossws - * .jars复制到了lib中,并且我在运行junits时引用它并且它工作正常。但是,当我在运行的JBoss AS中使用我的客户端时,我得到了这个:引起:org.jboss.ws.WSException:无效的HTTP服务器响应[404] - 未找到但我已经三次检查我已配置的服务端点是的,我可以在浏览器中找到它,soapUI可以点击它,我的单元测试使用相同的客户端可以调用它。
经过大量研究后,我发现JBoss(和JBossWS)可能在JBossWS 3.0.x版本(可能还有其他版本)中存在一些错误。这可能是由于您使用的JAX-WS版本和您的调用服务器的组合引起的。在我的情况下,服务器不支持分块的HTTP请求,JBoss WS有一些处理它的错误。这是我需要在实际请求之前添加的代码:
// HACK: This is a hack for disabling chunked encoding. .NET server run by service host does nto seem to support chunked encoding.
//Jboss WS version 3.0.5 has multiple bugs disallowing the setting of either a new client type or disabling chunking.
//So, we are resporting to this hack here.
// This essentially sets the chunck size to 0 forcing the Webservice client to not chunk requests and not expect responses to be chunked (effectively HTTP 1.0 mode)
// ((StubExt) port).setConfigName("HTTP 1.0 Client"); // does not work in Jboss WS 3.0.5
EndpointMetaData endpointMetaData = ((StubExt) serviceEndPoint).getEndpointMetaData();
CommonConfig commonConfig = endpointMetaData.getConfig();
boolean hacked = false;
try {
if (commonConfig.getProperties() != null){
Iterator<EndpointProperty> iter = commonConfig.getProperties().iterator();
while (iter.hasNext()){
EndpointProperty p = iter.next();
if (p.name.equals(new URI(EndpointProperty.CHUNKED_ENCODING_SIZE))){
p.value = "0";
hacked = true;
log.info("Chunking set to 0 since service host does not support chunked requests");
}
}
}
} catch (URISyntaxException e) {
e.printStackTrace();
}
if (!hacked)commonConfig.addProperty(EndpointProperty.CHUNKED_ENCODING_SIZE, "0");
// END HACK