Java Glassfish - Как использовать SSL веб-сервис? - PullRequest
2 голосов
/ 06 апреля 2011

Я использовал netbeans для создания и развертывания веб-службы SSL ejb hello world на сервере Glassfish, а затем попытался (безуспешно) использовать эту службу из Java-приложения.

Любая помощь будет принята с благодарностью. Ниже более подробно о том, что я сделал.


  1. Я создал веб-сервис hello world (ejb).
  2. Я установил опцию Безопасная служба веб-службы hello world на Transport Security (SSL)
  3. Я развернул веб-сервис на Glassfish 3.1
  4. Я создал приложение Java, добавил клиента веб-службы, который использует веб-службу hello world, используя wsdl: "https://localhost:8181/OanhWebService/OanhWebService?wsdl"
  5. Когда я пытался вызвать веб-сервис, я получил следующую ошибку: Исключение в потоке "основной" При попытке открыть диалоговое окно «Редактировать атрибуты веб-службы» ссылки на веб-службу, на вкладке «Качество обслуживания» есть только один параметр «Транспорт», параметр «Безопасность» отсутствует. Пожалуйста помоги! Это очень простая задача, но она удивительно стоила мне много времени. Большое спасибо, Tuc

Ниже более подробная информация:

------------------- Версии инструментов -------------------------- -------

Версия Glassfish: 3.1 Netbeans версии 7.0 RC1 (пробовал 6.9.1 и 7 Beta, 7 Beta2, но испытывает ту же проблему!) Метро 2.0

------------------ Опубликован WSDL --------------------------- ------------

WSDL при просмотре через веб-браузер:

@namespace html url (http://www.w3.org/1999/xhtml);: root {font: small Verdana; font-weight: bold; отступ: 2em; padding-left: 4em;} * {display: block; padding-left: 2em;} html | style { display: none;} html | span, html | a {display: inline; отступ: 0; font-weight: normal; текстовое оформление: нет;} html | span.block {display: block;} * * [html | hidden ], span.block [html | hidden] {display: none;} .expand {display: block;} .expand: before {content: '+'; цвет: красный; позиция: абсолютная; слева: -1em;}. collapse {display: block;} .collapse: before {content: '-'; цвет: красный; позиция: абсолютная; слева: -1em;} http://jax -ws.dev.java.net. Версия RI - Metro / 2.1 (филиалы / 2.1-6728; 2011-02-03T14: 14: 58 + 0000) JAXWS-RI / 2.2.3 JAXWS / 2.2. -> http://jax -ws.dev.java.net. Версия RI - Metro / 2.1 (филиалы / 2.1-6728; 2011-02-03T14: 14: 58 + 0000) JAXWS-RI / 2.2.3 JAXWS / 2.2. ->

---------------- Следы на сайте клиента --------------------------- ---------

Исключение в потоке "основной" в com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException (SOAP11Fault.java:178) в com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException (SOAPFaultBuilder.java:119) в com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke (SyncMethodHandler.java:108) в com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke (SyncMethodHandler.java:78) на com.sun.xml.internal.ws.client.sei.SEIStub.invoke (SEIStub.java:107) на $ Proxy30.hello (неизвестный источник) на oanhejbwebserviceclient.OanhEJBWebServiceClient.hello (OanhEJBWebServiceClient.java:47) в oanhejbwebserviceclient.OanhEJBWebServiceClient.main (OanhEJBWebServiceClient.java:39) Вызвано: javax.xml.ws.soap.SOAPFaultException: WSS1601: Требования безопасности не выполнены - привязка транспорта настроена в политике, но входящее сообщение не поддерживает SSL в com.sun.xml.ws.security.opt.impl.util.SOAPUtil.createSOAPFault (SOAPUtil.java:223) в com.sun.xml.ws.security.opt.impl.util.SOAPUtil.getSOAPFaultException (SOAPUtil.java:215) в com.sun.xml.wss.provider.wsit.WSITServerAuthContext.validateRequest (WSITServerAuthContext.java:379) в com.sun.xml.wss.provider.wsit.WSITServerAuthContext.validateRequest (WSITServerAuthContext.java:263)в com.sun.enterprise.security.webservices.CommonServerSecurityPipe.processRequest (CommonServerSecurityPipe.java:173) в com.sun.enterprise.security.webservices.CommonServerSecurityPipe.process (CommonServerSecurityPipe.jun14: at..api.pipe.helper.PipeAdapter.processRequest (PipeAdapter.java:119) в com.sun.xml.ws.api.pipe.Fiber .__ doRun (Fiber.java:641) в com.sun.xml.ws.api.pipe.Fiber._doRun (Fiber.java:600) на com.sun.xml.ws.api.pipe.Fiber.doRun (Fiber.java:585) на com.sun.xml.ws.api.pipe.Fiber.runSync (Fiber.java:482) в com.sun.xml.ws.server.WSEndpointImpl $ 2.process (WSEndpointImpl.java:314) в com.sun.xml.ws.transport.http.HttpAdapter $ HttpToolkit.handle (HttpAdapter.java:608) на com.sun.xml.ws.transport.http.HttpAdapter.handle (HttpAdapter.java:259) на com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle (ServletAdapter.Java: 162) на org.glassfish.webservices.Ejb3MessageDispatcher.handlePost (Ejb3MessageDispatcher.java:120) на org.glassfish.webservices.Ejb3MessageDispatcher.invoke (Ejb3MessageDispatcher.java:91) в org.glassfish.webservices.EjbWebServiceServlet.dispatchToEjbEndpoint (EjbWebServiceServlet.java:200) в org.glassfish.webservices.erjerSweb ().HttpServlet.service (HttpServlet.java:848) по адресу com.sun.grizzly.http.servlet.ServletAdapter $ FilterChainImpl.doFilter (ServletAdapter.java:1002) в com.sun.grizzly.http.servlet.mpilha.Servlet(ServletAdapter.java:942) на com.sun.grizzly.http.servlet.ServletAdapter.doService (ServletAdapter.java:404) на com.sun.grizzly.http.servlet.ServletAdapter.service (ServletAdapter.java:354)com.sun.grizzly.tcp.http11.GrizzlyAdapter.service (GrizzlyAdapter.java:168) в com.sun.enterprise.v3.server.HK2Dispatcher.dispath (HK2Dispatcher.java:117) в com.sun.enterprise.v3.services.impl.ContainerMapper.service (ContainerMapper.java:234) по адресу com.sun.grizzly.http.ProcessorTask.invokeAdapter (ProcessorTask.java:822) по адресу com.sun.gri.zzly.http.ProcessorTask.doProcess (ProcessorTask.java:719) в com.sun.grizzly.http.ProcessorTask.process (ProcessorTask.java:1013) в com.sun.grizzly.http.DefaultProtocolFilter.executer (DefaultProtocolFil::225) в com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter (DefaultProtocolChain.java:137) в com.sun.grizzly.DefaultProtocolChain.execute (DefaultProtocolChain.java:104) в com.sun.grizzly.DefaultProtocolChain.execute (: 90) в com.sun.grizzly.http.HttpProtocolChain.execute (HttpProtocolChain.java:79) в com.sun.grizzly.ProtocolChainContextTask.doCall (ProtocolChainContextTask.java:54) в com.sun.grizzly.xtKelection.SelectionKeyContextTask.java:59) на com.sun.grizzly.ContextTask.run (ContextTask.java:71) на com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork (AbstractThreadPool.java:532) на com.sun.grizzly.util.AbstractThreadPool $ Worker.run (AbstractThreadPool.java:513) в java.lang.Thread.run (Thread.java:662) Причина: com.sun.xml.wss.impl.XWSSecurityRuntimeException: WSS1601: Требования безопасности не выполнены - привязка транспорта настроена в политике, но для входящего сообщения не включена поддержка SSL в com.sun.xml.wss.impl.policy.verifier.MessagePolicyVerifier.verifyPolicy (MessagePolicyVerifier.java:125) вcom.sun.xml.ws.security.opt.impl.incoming.SecurityRecipient.createMessage (SecurityRecipient.java:983) в com.sun.xml.ws.security.opt.impl.incoming.SecurityRecipient.validateMessage (SecurityRecipient.java: 232) по адресу com.sun.xml.wss.provider.wsit.WSITServerAuthContext.verifyInboundMessage (WSITServerAuthContext.java:586) по адресу com.sun.xml.wss.provider.wsit.WSITServerAuthContext.jt3Server_WidStever.WidStever (60) .WisitWest.Wid.Server.Wid.Wid.Wid.Wid.Wid.Server.Wid.Wid.Server.1036 *

----------------------- Трассировка на сайте сервера --------------------------------------

SEVERE: WSS1601: Требования безопасности не выполнены - привязка транспорта настроена в политике, но входящее сообщение не поддерживает SSLSEVERE: WSITPVD0035: Ошибка при проверке безопасности во входящем сообщении. com.sun.xml.wss.impl.XWSSecurityRuntimeException: WSS1601: требования безопасности не выполнены - привязка транспорта настроена в политике, но входящее сообщение не было включено SSL в com.sun.xml.wss.impl.policy.verifier.MessagePolicyVerifier.verifyPolicy (MessagePolicyVerifier.java:125) в com.sun.xml.ws.security.opt.impl.incoming.SecurityRecipient.createMessage (SecurityRecipient.java:983) в com.sun.xml.ws.security.opt.impl.incoming.SecurityRecipient.validateMessage (SecurityRecipient.java:232) в com.sun.xml.wss.provider.wsit.WSITServerAuthContext.verifyInboundMessage (WSITServerAuthContext.java:586) в com.sun.xml.wss.provider.wsit.WSITServerAuthContext.validateRequest (WSITServerAuthContext.java:360) в com.sun.xml.wss.provider.wsit.WSITServerAuthContext.validateRequest (WSITServerAuthContext.java:263) в com.sun.enterprise.security.webservices.CommonServerSecurityPipe.processRequest (CommonServerSecurityPipe.java:173) в com.sun.enterprise.security.webservices.CommonServerSecurityPipe.process (CommonServerSecurityPipe.java:144) в com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest (PipeAdapter.java:119) на com.sun.xml.ws.api.pipe.Fiber .__ doRun (Fiber.java:641) на com.sun.xml.ws.api.pipe.Fiber._doRun (Fiber.java:600) на com.sun.xml.ws.api.pipe.Fiber.doRun (Fiber.java:585) на com.sun.xml.ws.api.pipe.Fiber.runSync (Fiber.java:482) в com.sun.xml.ws.server.WSEndpointImpl $ 2.process (WSEndpointImpl.java:314) в com.sun.xml.ws.transport.http.HttpAdapter $ HttpToolkit.handle (HttpAdapter.java:608) на com.sun.xml.ws.transport.http.HttpAdapter.handle (HttpAdapter.java:259) в com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle (ServletAdapter.java:162) на org.glassfish.webservices.Ejb3MessageDispatcher.handlePost (Ejb3MessageDispatcher.java:120) на org.glassfish.webservices.Ejb3MessageDispatcher.invoke (Ejb3MessageDispatcher.java:91) в org.glassfish.webservices.EjbWebServiceServlet.dispatchToEjbEndpoint (EjbWebServiceServlet.java:200) на org.glassfish.webservices.EjbWebServiceServlet.service (EjbWebServiceServlet.java:131) на javax.servlet.http.HttpServlet.service (HttpServlet.java:848) в com.sun.grizzly.http.servlet.ServletAdapter $ FilterChainImpl.doFilter (ServletAdapter.java:1002) в com.sun.grizzly.http.servlet.ServletAdapter $ FilterChainImpl.invokeFilterChain (ServletAdapter.java:942) на com.sun.grizzly.http.servlet.ServletAdapter.doService (ServletAdapter.java:404) на com.sun.grizzly.http.servlet.ServletAdapter.service (ServletAdapter.java:354) на com.sun.grizzly.tcp.http11.GrizzlyAdapter.service (GrizzlyAdapter.java:168) на com.sun.enterprise.v3.server.HK2Dispatcher.dispath (HK2Dispatcher.java:117) на com.sun.enterprise.v3.services.impl.ContainerMapper.service (ContainerMapper.java:234) в com.sun.grizzly.http.ProcessorTask.invokeAdapter (ProcessorTask.java:822) на com.sun.grizzly.http.ProcessorTask.doProcess (ProcessorTask.java:719) на com.sun.grizzly.http.ProcessorTask.process (ProcessorTask.java:1013) на com.sun.grizzly.http.DefaultProtocolFilter.execute (DefaultProtocolFilter.java:225) в com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter (DefaultProtocolChain.java:137) на com.sun.grizzly.DefaultProtocolChain.execute (DefaultProtocolChain.java:104) на com.sun.grizzly.DefaultProtocolChain.execute (DefaultProtocolChain.java:90) на com.sun.grizzly.http.HttpProtocolChain.execute (HttpProtocolChain.java:79) на com.sun.grizzly.ProtocolChainContextTask.doCall (ProtocolChainContextTask.java:54) на com.sun.grizzly.SelectionKeyContextTask.call (SelectionKeyContextTask.java:59) на com.sun.grizzly.ContextTask.run (ContextTask.java:71) на com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork (AbstractThreadPool.java:532) на com.sun.grizzly.util.AbstractThreadPool $ Worker.run (AbstractThreadPool.java:513) at java.lang.Thread.run (Thread.java:662)

Ответы [ 2 ]

0 голосов
/ 17 декабря 2012

Это относится к этой ошибке Обновление до гризли 1.9.55 или новее, чтобы исправить это.

0 голосов
/ 07 апреля 2011

Проблема заключалась в том, что я создал отдельный ejb с веб-службами, а затем непосредственно развернул ejb (без веб-приложения для переноса), все прошло хорошо с незащищенным соединением, когда использовался SSL, у нас были проблемы, как описано.Проблема исчезла, когда я создал веб-приложение с веб-службами.У меня нет времени углубляться в провал дела EJB.Хотя все еще любопытно ...: -)

Tuc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...