有谁知道如何配置它,以便SOAP服务和REST服务可以在应用程序服务器之外使用Jersey(Grizzly)共享相同的端口?如何在同一端口托管SOAP服务和REST服务?
- 我SOAP服务是在www.someurl.com:port/soap/crm
- 我休息服务是在www.someurl.com:port/crm
这些服务共享同端口但不是相同的基本URL,因此应该能够在该端口上并排运行。然而,有一个端口绑定错误..
所有这一切都在一个自定义的服务应用程序并没有web.xml文件或这样的。
的REST服务使用新泽西州和SOAP服务是在端点上发表的一类“ReceptionService”。 ':地址已在使用中:java.net.BindException绑定'
URI soapUri = URI.create("192.168.0.0:1234\soap\Crm")
URI restUri = URI.create("192.168.0.0:1234\crm")
// START SOAP SERVICE
Object reception = getObjectResource(ReceptionService.class);
Endpoint e = Endpoint.publish(soapUri, reception);
// START REST SERVICE
ResourceConfig rc = new ResourceConfig().packages("company.rest");
HttpServer server = GrizzlyHttpServerFactory.createHttpServer(restUri, rc);
当我尝试这一点,灰熊吐出
我SOAP服务前台的设置是这样的:
@WebService(targetNamespace = "company.crm")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public class Reception implements ReceptionService {
... methods
}
我休息服务类像往常一样注释...
@Path("hello/{username}")
public class Hello { ... }
我有点新手在这个nd任何指针,将不胜感激。请不要打扰我建议我运行应用程序服务器。这不是问题 - 问题是如何解决端口绑定问题而不移动到其他Web服务框架?
注RE BOUNTY:我不能ITERATE这还不够
“赏金优胜者将演示如何使用新泽西州的REST和Java SOAP服务(注释JAX-WS)一起在同一端点答案将不需要修改Rest和Soap注释类,但是,HTTP服务器代码更改或配置更改以使其工作是可接受的。切换到Jetty或其他应用程序服务器是不可接受的该解决方案必须100%嵌入并运行Java SE和Java Web服务库“。
有点更多的信息会有帮助,例如你使用哪种类型的Web服务器/应用程序服务器? 'web.xml'看起来像什么? –
您是否找到了解决方案?我面临同样的问题 –
没有。我仍然让他们分开的端口。我将不得不重做我的代码,我没有时间和耐心。希望将来可以配置。 –