2016-07-11 14 views
0

Ich entwickle Restdienst mit ReastEasy 3.0.10 API mit Tomcat 8 und JAVA 8. Mein Code funktioniert gut auf Fenstermaschine, aber wenn ich WAR-Datei auf Linux-Maschine, gibt es Fehler org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoSuchMethodError: javax.ws.rs.core.Response.close()VRest Easy Client 3.0.10 mit Tomcat 8 java.lang.NoSuchMethodError: javax.ws.rs.core.Response.close() V

Die Anzahl der JAR-Dateien sind die gleichen wie es auf lokaler ist. Ich habe zwei JAR-Dateien javax.ws.rs-api-2.0.1 und jaxrs-api-3.0.10.Final in meinem lib-Ordner. Beide haben Response-Klasse und Close-Methode. Aber es gibt immer noch Fehler auf dem Linux-Server. Irgendein Vorschlag?

Der Client-Code

try { 
      Client client = ClientBuilder.newClient(); 
      String targetUrl = "http://xxx.xxx.xxx.xxx:xxxx/appname/rest/resturl" 

      WebTarget target = client.target(targetUrl); 

      response = target.request(MediaType.APPLICATION_JSON).header("AUTHENTICATED", true) 
        .post(Entity.entity(RestUtil.convertObjectToJSONString(object), MediaType.APPLICATION_JSON)); 
      responseString = response.readEntity(String.class); 

     }catch(Exception e){ 
      e.printStackTrace(); 
     } finally { 
      response.close(); 
     } 

Auch ist ich eine Sache bemerkt haben, ruft sie den Rest Service und Druckdaten, die zurückkehrt Rest aber Danach druckt Internal Server Error 500 in Protokoll vor dem oben genannten Fehler Drucken .

Antwort

0

Ok. Nachdem ich einen Tag investiert hatte, stellte ich fest, dass dieser Fehler auftritt, wenn ein anderes Glas dieselbe Klasse mit derselben Paketstruktur hat. Ich habe ein Tool JARMINATOR verwendet, um alle meine JAR-Dateien zu scannen. Jetzt habe ich dieses Problem behoben, aber es ist immer noch eine Frage, warum der Windows-Rechner dieses Jar nicht geladen hat, sondern der Linux-Rechner in den Linux-Rechner geladen wurde.