Веб-служба Jboss: ошибка: java.io.IOException: не удалось передать сообщение - PullRequest
0 голосов
/ 06 января 2010

Привет! Я пытаюсь развернуть клиентское приложение веб-службы в Jboss 4.2.3GA. Я уже сделал это, и это работает в 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 и должен был копировать jar-файлы в определенные папки, пожалуйста, дайте мне знать, что вы сделали? Я бы предпочел, если бы вы использовали 4.3.3GA или 5.1.0GA. Спасибо за чтение.

Ответы [ 2 ]

2 голосов
/ 03 января 2012

Вы также можете настроить chunksize для своего экземпляра на

SERVER_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 голос
/ 27 октября 2011

У меня также есть эта проблема на 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...