2016-03-19 14 views
2

Jersey 2.15 kullanarak bir RESTful Client yazdım ve IBM Watson's RankRetrieve (R & R) Hizmetini çağırdım. Kod parçacığı Tomcat 7 dışarı dağıtılan bir WAR yanı sıra Eclipse ortamında dışında çalışır ve aynı WAR dosyası WebSphere LibertyProfile 8.5.5.7 konuşlandırılan edildiğinde R & R hizmetiJersey İstemci, Tomcat ve Websphere Liberty Profilinde yürütüldüğünde iki takım sonuç verir

HttpAuthenticationFeature basicAuthCredentials = HttpAuthenticationFeature.basic(this.userName, this.password); 
Client client = ClientBuilder.newClient(); 
client.register(basicAuthCredentials); 
WebTarget webTarget = client.target(this.buildUri()) 
          .queryParam("ranker_id", this.rankerID) 
          .queryParam("q", searchTerm) 
          .queryParam("wt", "json"); 
Invocation.Builder invocationBuilder = webTarget.request(MediaType.TEXT_PLAIN_TYPE) 
               .accept(MediaType.APPLICATION_JSON); 
Response response = invocationBuilder.get(); 
String resultString = response.readEntity(String.class); 
System.out.println("RankRetrieve Response: " + resultString); 

gelen sonuç JSON getirir Ama alınan tepki 404.

{"responseHeader":{"status":400,"QTime":0},"error":{"msg":"Bad contentType for search handler :text/xml request={q=theQuestions&ranker_id=SomeRankerID&wt=json}","code":400}} 

sonra WLP & Jersey hakkında arama başladı ve böyle JAX-RS Jersey Client on Websphere 8.5

A olarak makalelere rastladım olduğunu

webTarget : JerseyWebTarget { https://<URL>?ranker_id=someRankerID&q=theQuestions&wt=json } 

Fakat şöyle WLP altında aynı izle bana gösteriyor: aşağıdaki gibi LSO Tomcat altında webTarget izlerken ayıklama modunda sırasında, ben içeriğini görmek aynı uygulamasında

webTarget : [email protected]16 

, Diğer bazı sınıflarda, Jersey Client diğer hizmetleri de tüketir ve WLP altında beklendiği gibi çalışır, bu yüzden bu kodun WLP kapsamında beklendiği gibi çalışmasının nedenini anlayamıyorum.

Bu benim ilk Java projemdir ve çevrimiçi/okuma SO/okuma WLP belgelerini aramayı denedim, ancak hiçbiri, aynı kodun Tomcat'ın altında ve WLP altında değil, sonuçları almasının nedenini ortaya çıkarmam için hiçbiri yardımcı olmadı.

WLP'yi sunucularımızdan kaldıramıyorum, çünkü birçok başka uygulamayı barındırıyor ancak sorunla ilgili herhangi bir yardım için teşekkür ederiz.

+0

Kendi özel bilgilerinizi sağladığınız için jaxrs özelliğini hürriyet içinde devre dışı bırakmayı denediniz mi? Eclipse veya örtülü olarak ör. webPorfile veya ee7 özellikleri. Check server.xml – covener

+0

WLP belgelerine bakıyordum, ancak örneklerim sunucu.xml dosyası dokümantasyonda anlatılanlar gibi bir şey içermiyor. – user6083088

cevap

0

Kök nedeni dahili cxf WebTargetImpl ilk önce Jersey'in yüklenmesine neden olmuştur. Herhangi jaxrs orada özelliği etkin ise

seçenek 1) özelliği jaxrs devre dışı bırakın, görmek /usr/servers//logs/message.log kontrol edebilirsiniz: com.ibm.ws.kernel.feature.internal.FeatureManager bir CWWKF0012I: [.... jaxrs-2,0 ...]

seçenek 2) parentLast değiştirin classloader politikası: ..

seçenek 3) tüm kaldır sunucu aşağıdaki özellikleri yüklü jersey kavanozları ve jaxrs-2.0 özelliğini etkinleştirin ve deneyin.

Neal

İlgili konular