2016-07-25 16 views
1

こんにちは私は仕事からの問題を解決しようとしていますが、私はこの問題について知識がありません。私は誰かが私にいくつかの光を与えることができることを望んでいた。私は単純なRESTクライアントを作成しようとしていますが、いくつかの外部REST Webサービスを消費します。WAS 7 RESTクライアントのジャージー2

マイ開発のenv:

Eclipseのルナ+のWebSphere Portal 7(7 WAS)+ JAVA 1.7の依存関係のためにMavenを使用して+が。私のpom.xmlで

<servlet> 
    <servlet-name>ServletAdaptor</servlet-name> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 

    <init-param> 
     <param-name>jersey.config.server.provider.packages</param-name> 
     <param-value>myportal/dataaccess/webservice/rest/myrestclient</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

: 私はこれを持って私のweb.xmlに

ジャージー2は、(私はジャージ1を使用するsuposedれた場合は、最新のリリースドントが知っている)を使用しようとしています

<dependency> 
     <groupId>org.glassfish.jersey.core</groupId> 
     <artifactId>jersey-client</artifactId> 
     <version>2.23.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.core</groupId> 
     <artifactId>jersey-common</artifactId> 
     <version>2.23.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.core</groupId> 
     <artifactId>jersey-server</artifactId> 
     <version>2.23.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.containers</groupId> 
     <artifactId>jersey-container-servlet-core</artifactId> 
     <version>2.23.1</version> 
    </dependency> 

ジャージーコンテナサーブレット・コア私はサーブレットAPIを持っているので、2.5

私は必要なトークンを取得するために私の簡単な方法

@GET 
@Consumes(MediaType.APPLICATION_JSON) 
public String getToken() { 
    String resposta=""; 


    System.out.println("STEP 1"); 
     ClientConfig config = new ClientConfig(); 
     Client client = javax.ws.rs.client.ClientBuilder.newClient(config); 
    System.out.println("STEP 2"); 
     WebTarget targetnp = client.target(_BASE_URI).path("/login"); 
    System.out.println("STEP 3"); 
     targetnp.queryParam("login", _LOGIN); 
     targetnp.queryParam("password", _PASSWORD); 
    System.out.println("STEP 4"); 
     Invocation.Builder invocationBuilder = targetnp.request(MediaType.APPLICATION_JSON); 
     Response response = invocationBuilder.get(); 
    System.out.println("STEP 5"); 
    System.out.println(response.getStatus()); 


    return resposta; 
} 

PROBLEM

SystemOut  O STEP 1 
[25-07-2016 10:22:12:797 BST] 0000003e SystemOut  O STEP 2 
[25-07-2016 10:22:12:813 BST] 0000003e ServletWrappe E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: Uncaught exception created in one of the service methods of the servlet RESTtest in application MyPortalEAR. Exception created : java.lang.AbstractMethodError: javax/ws/rs/core/UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder; 
    at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119) 
    at org.glassfish.jersey.client.JerseyWebTarget.<init>(JerseyWebTarget.java:71) 
    at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:290) 
    at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:76) 

Iは_BASE_URIを確認することができるがよく形成されています。なぜこれが起こっているのか分かりません。

アイデア?

答えて

1

params jersey.config.server.provider.packagesの値はパッケージ名なので、 "/"を使用する必要はありません。 (点):

https://jersey.java.net/nonav/documentation/2.0/deployment.htmlに行くと、ジャージーに関する例と情報が見つかります。

また、web.xmlにはサーブレットマッピングが必要ですが、上記のドキュメントにあることを忘れないでください。

+0

Didnt work..thx –

関連する問題