Maven、Jersey、Tomcat 8のUbuntu 16.04、Oracle Java 8、Intellijを使用してRESTサービスのサンプルを実行しようとしています。ここにはhttps://medium.com/@jamsesso/starting-out-with-jersey-apache-tomcat-using-intellij-6338d93ffd40#.heb2u4rosがあります。私はに私を送るコードを実行すると(しかし、それはhttp://localhost:8080/hello
私はそれを試してきたと思うし、私に404
を与える)私は取得しませんIntellijからの警告はありますが、私は HTTP Status 404 -type Status report message description The requested resource is not available. Apache Tomcat/8.0.32 (Ubuntu)
をウェブブラウザで入手します。コマンドラインからTomcatサーバーを起動するとうまく動作し、歓迎メッセージが表示されます。私はstackoverflowで見つけることができるすべての同様の質問を行ってきましたが、私は問題を解決することができませんでした。私は自分のコードに何が間違っているのか、何か提案があればとてもうれしいです。Maven、Jersey、Tomcat 8でIntellijからRESTサービスを実行
私のコードは以下の通りです。 IntelliJ
からweb.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<servlet>
<servlet-name>Example API</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.example.jersey</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Example API</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
_
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example.jersey</groupId>
<artifactId>RESTServer</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-bundle</artifactId>
<version>1.18.3</version>
</dependency>
</dependencies>
</project>
_
package com.example.jersey;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class HelloWorld {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getMessage() {
return "Hello world!";
}
}
出力
/usr/share/tomcat8/bin/catalina.sh run
[2016-07-10 08:17:15,670] Artifact RESTServer:war exploded: Server is not connected. Deploy is not available.
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version: Apache Tomcat/8.0.32 (Ubuntu)
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built: Jul 6 2016 11:49:29 UTC
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number: 8.0.32.0
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name: Linux
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version: 4.4.0-28-generic
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture: amd64
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home: /usr/lib/jvm/java-8-oracle/jre
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version: 1.8.0_91-b14
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor: Oracle Corporation
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE: /home/mikael/.IntelliJIdea2016.1/system/tomcat/Unnamed_RESTServer_2
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME: /usr/share/tomcat8
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.util.logging.config.file=/home/mikael/.IntelliJIdea2016.1/system/tomcat/Unnamed_RESTServer_2/conf/logging.properties
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcom.sun.management.jmxremote=
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcom.sun.management.jmxremote.port=1099
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcom.sun.management.jmxremote.ssl=false
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcom.sun.management.jmxremote.authenticate=false
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.rmi.server.hostname=127.0.0.1
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=/usr/share/tomcat8/endorsed
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=/home/mikael/.IntelliJIdea2016.1/system/tomcat/Unnamed_RESTServer_2
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=/usr/share/tomcat8
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.io.tmpdir=/home/mikael/.IntelliJIdea2016.1/system/tomcat/Unnamed_RESTServer_2/temp
Jul 10, 2016 8:17:17 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Jul 10, 2016 8:17:17 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Jul 10, 2016 8:17:17 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1586 ms
Jul 10, 2016 8:17:18 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jul 10, 2016 8:17:18 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.0.32 (Ubuntu)
Jul 10, 2016 8:17:18 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Jul 10, 2016 8:17:18 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 188 ms
Connected to server
[2016-07-10 08:17:18,307] Artifact RESTServer:war exploded: Artifact is being deployed, please wait...
Jul 10, 2016 8:17:19 AM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
[2016-07-10 08:17:19,467] Artifact RESTServer:war exploded: Artifact is deployed successfully
[2016-07-10 08:17:19,468] Artifact RESTServer:war exploded: Deploy took 1,161 milliseconds
アプリは/ RESTServerの下でなければなりません。リソースは/ helloの下にあるので、このアプリケーションのURLは/ RESTServer/helloでなければなりません。 –
@JBNizet 'http:// localhost:8080/RESTServer/hello'を試しましたが、まだ' 404'を取得します。 – g3blv
あなたのクラスパッケージcom.example.jerseyがフォルダ構造RESTServer/src/main/java内にあることを願っていますか? – Sampada