0

Websphere LibertyプロファイルでWebtargetコードを使用してサンプルRestメソッドにアクセスしようとしました。{} WebClientのインターセプタが例外をスローしました。メッセージを送信できませんでした。

[WARNING ] Interceptor for {https://www.google.com}WebClient has thrown exception, unwinding now 
Could not send Message. 

java mainメソッドで直接実行すると動作します。

@GET 
    @Produces("text/plain") 
    @Path("/hello") 
    public Response healthCheck() { 
     ClientConfig configuration = new ClientConfig(); 
     configuration = configuration.property(ClientProperties.CONNECT_TIMEOUT, 30000); 
     configuration = configuration.property(ClientProperties.READ_TIMEOUT, 30000); 
     configuration = configuration.property(ClientProperties.PROXY_URI, "http://xxx.xxx.com:8080"); 
     configuration.connectorProvider(new ApacheConnectorProvider()); 
     Client client = ClientBuilder.newClient(configuration); 
     WebTarget target = client.target(
       "https://www.google.com"); 

     String content = target.request().get(String.class); 
     System.out.println(content); 
} 

何か助けていただければ幸いです。シンプルな仕事ですが、時間がかかります。

答えて

0

ClientConfigおよびClientPropertiesは、ジャージーに固有のタイプです。アプリケーションでそれらを使用しているかもしれませんが、CXFに基づいたWebSphereのJAX-RS実装とほぼ確実に競合します。フルログを投稿すると、そのログを確認することができます。

代わりにジャージー種のJAX-RS仕様のAPIタイプを使用してみてください - と、このようなIBMのプロパティ(残念ながら、これらのプロパティは、ポータブルではありません)を使用します、

@GET 
@Produces("text/plain") 
@Path("/hello") 
public Response healthCheck() { 
    Client client = ClientBuilder.newBuilder() 
      .property("com.ibm.ws.jaxrs.client.connection.timeout", 30000) 
      .property("com.ibm.ws.jaxrs.client.receive.timeout", 30000) 
      .property("com.ibm.ws.jaxrs.client.proxy.host", "xxx.xxx.com") 
      .property("com.ibm.ws.jaxrs.client.proxy.port", "8080") 
      .build(); 

    WebTarget target = client.target(
      "https://www.google.com"); 

    String content = target.request().get(String.class); 
    System.out.println(content); 
    return Response.ok(content).build(); 
} 

・ホープこのことができますがアンディ

+0

ありがとうAndy。それは私を助けました...今私は要求を送ることができます。再度、感謝します。 – nivas

関連する問題