有誰知道如何配置它,以便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'看起來像什麼? –
您是否找到了解決方案?我面臨同樣的問題 –
沒有。我仍然讓他們分開的端口。我將不得不重做我的代碼,我沒有時間和耐心。希望將來可以配置。 –