Я использовал netbeans для создания и развертывания веб-службы SSL ejb hello world на сервере Glassfish, а затем попытался (безуспешно) использовать эту службу из Java-приложения.
Любая помощь будет принята с благодарностью. Ниже более подробно о том, что я сделал.
- Я создал веб-сервис hello world (ejb).
- Я установил опцию Безопасная служба веб-службы hello world на Transport Security (SSL)
- Я развернул веб-сервис на Glassfish 3.1
- Я создал приложение Java, добавил клиента веб-службы, который использует веб-службу hello world, используя wsdl: "https://localhost:8181/OanhWebService/OanhWebService?wsdl"
- Когда я пытался вызвать веб-сервис, я получил следующую ошибку:
Исключение в потоке "основной"
При попытке открыть диалоговое окно «Редактировать атрибуты веб-службы» ссылки на веб-службу, на вкладке «Качество обслуживания» есть только один параметр «Транспорт», параметр «Безопасность» отсутствует.
Пожалуйста помоги! Это очень простая задача, но она удивительно стоила мне много времени.
Большое спасибо,
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)