2017-02-08 12 views
0

Jersey Webサービスを設定していますが、実行できません。Apache Tomcat 8.5がエラーになります。簡単なコード、私のlibsとエラーについては、以下の詳細を参照してください。サーバTomcat v8.5がhello world Jersey Webサービスの起動に失敗しました

私は私が私のジャージーファイルを追加した動的Webプロジェクト... を作成した...(私はいずれかを欠くのですか?

  • javax.ws.rs-api.2.0.1.jar
  • ジャージー-client.jarの
  • ジャージー-common.jarを
  • ジャージーcontaner-servlet.jarは
  • ジャージーコンテナ-servlet.jarは
  • ジャージーメディアjaxb.jar
  • ジャージー-server.jar

私のWeb.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> 
<servlet> 
    <servlet-name>myApi</servlet-name> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>jersey.config.server.provider.packages</param-name> 
     <!-- The package where your resource classes are --> 
     <param-value>WS</param-value> 
    </init-param> 
</servlet> 
<servlet-mapping> 
    <servlet-name>testApi</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 
</web-app> 

私のJavaクラス

package ws; 
import javax.ws.rs.*; 
import javax.ws.rs.core.*; 

    @Path("test") 
    public class Connect { 
     @GET 
     @Path("test") 
     @Produces(MediaType.TEXT_PLAIN) 
     public String hello(){ 
      return "hello world"; 
     } 
    } 

ポップアップの前に私のエラーApachev8.5を起動できませんでした。

SEVERE: A child container failed during start 
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/ThisApi]] 
    at java.util.concurrent.FutureTask.report(Unknown Source) 
    at java.util.concurrent.FutureTask.get(Unknown Source) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:911) 
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:890) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/ThisApi]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) 
    ... 6 more 
Caused by: java.lang.NoClassDefFoundError: jersey/repackaged/com/google/common/base/Function 
    at org.glassfish.jersey.internal.ServiceFinder.<clinit>(ServiceFinder.java:165) 
    at org.glassfish.jersey.servlet.internal.ServletContainerProviderFactory.getAllServletContainerProviders(ServletContainerProviderFactory.java:66) 
    at org.glassfish.jersey.servlet.init.JerseyServletContainerInitializer.onStartup(JerseyServletContainerInitializer.java:134) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5178) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 6 more 
Caused by: java.lang.ClassNotFoundException: jersey.repackaged.com.google.common.base.Function 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285) 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119) 
    ... 11 more 
+1

見るこれは、http://stackoverflow.com/questions/22754372/jersey-2-7-issue-while-running -it-on-apache-tomcat-7-0 – Santo

+0

私はそうだと思います。ばかげたlibsが必要でしたが、違いを引き起こしたのは確かではありませんでしたが、私のテストのURLはどうなるの? – Fearghal

+0

localhost:port/your apps contextroot/test – Santo

答えて

1

jersey-guava.jarが見つかりません。Functionを含む、パッケージグレードのGoogle Guavaクラスのリバースバージョンが含まれている必要があります。ジャージーは彼らが必要とする正確なバージョンを再パッケージ化するので、オリジナルのパッケージ構造から好みのバージョンのGuavaを引き続き使用することができます。 https://stackoverflow.com/a/22069399/27905を参照してください。 Tomcatの7.回答はすべての依存関係を列挙されており、この場合に役立ちます

​​

+0

こんにちは、私はTomcatを実行するために修正の一部として追加しましたが...今はhttpステータス404エラー – Fearghal

+0

にこのエラーがあります。 Tomcatは手動で起動しました。私はlocalhostを打つことができます。私は私のWebサービスを開始します。私はローカルホストを打つことができません。 – Fearghal

+0

@Fearghal TomcatとWebアプリケーションをどのように展開して起動するのか、それ。 – nitind

関連する問題