JBoss AS7: соединение с веб-службой отказано - PullRequest
2 голосов
/ 25 октября 2011

Я использую ProcessBuilder на JBOSS AS7 для запуска внешнего JAR, который затем вызывает Endpoint.publish () для создания веб-службы JAX-WS. После этого я использую компонент Stateful для доступа к веб-службе.

Сам сервис работает нормально, я импортировал прокси-классы WS-клиента через wsimport и могу получить доступ к WSDL через браузер или soapUI. Но когда я пытаюсь получить доступ к веб-сервису на сервере, JBOSS выводит «Отказ в соединении». Я даже попробовал режим отладки, но без сбора полезных сообщений.

Я уже отключил брандмауэр, но без игры в кости:

 javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: Problem parsing 'http://localhost:4045/WebService/WebMethod?WSDL'.: java.net.ConnectException: Connection refused: connect

Система: JBOSS AS7.1.0.Alpha2, Windows, localhost

jboss log:

08:26:01,572 ERROR [stderr] (http--127.0.0.1-8080-1) javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.

08:26:01,573 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:149)

08:26:01,574 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.jboss.wsf.stack.cxf.client.ProviderImpl.createServiceDelegate(ProviderImpl.java:141)

08:26:01,574 ERROR [stderr] (http--127.0.0.1-8080-1)    at javax.xml.ws.Service.<init>(Service.java:57)

...

08:26:01,603 ERROR [stderr] (http--127.0.0.1-8080-1) Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.

08:26:01,603 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:94)

08:26:01,603 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:203)

08:26:01,603 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:147)

08:26:01,603 ERROR [stderr] (http--127.0.0.1-8080-1)    ... 158 more

08:26:01,604 ERROR [stderr] (http--127.0.0.1-8080-1) Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: Problem parsing 'http://localhost:4045/WebService/WebMethod?WSDL'.: java.net.ConnectException: Connection refused: connect

08:26:01,604 ERROR [stderr] (http--127.0.0.1-8080-1)    at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(Unknown Source)

08:26:01,605 ERROR [stderr] (http--127.0.0.1-8080-1)    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)

08:26:01,605 ERROR [stderr] (http--127.0.0.1-8080-1)    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)

08:26:01,605 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:239)

08:26:01,605 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:186)

08:26:01,605 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:92)

08:26:01,605 ERROR [stderr] (http--127.0.0.1-8080-1)    ... 160 more

08:26:01,606 ERROR [stderr] (http--127.0.0.1-8080-1) Caused by: java.net.ConnectException: Connection refused: connect

...

Ответы [ 2 ]

0 голосов
/ 22 апреля 2014

Попробуйте запустить сервер Jboss, добавив свойство -b 0.0.0.0 в файл run.bat следующим образом:

standalone.bat -b 0.0.0.0
0 голосов
/ 03 ноября 2011

Пожалуйста, смотрите Ответ Стивена84:

Вам нужен эхо-сервер, работающий в вашей системе, который предоставляется большинство машин UNIX и работает на порту № 7.

и из того же источника

Чтобы проверить, работает ли ваш Vista, просто нажмите telnet localhost 7 , если он показывает, что соединение отказано или не может подключиться, значит у вас на коробке нет эхо-сервера, а значит ваша программа не будет и это причина, по которой я чувствую ваше исключение ConnectException.

Вы упомянули, что выключили брандмауэр. Тогда у вас должен быть порт , неправильный . Попробуйте запустить ваше программное обеспечение как локальный, например, к порту 4000:

echoSocket = new Socket("localhost", 4000);
...