2015-05-01 98 views
0

我想讓我的第一個澤西Web服務項目工作,但我得到這個錯誤Jersey: The requested resource is not available.我已經安裝Jersey 2.16 eclispe Maven和安裝Tomcat 8.0.21我已經craeted MessageResource.java類裏面scr/main/java - org.test.messanger澤西:請求資源不可用

我打字此鏈接:

http://localhost:8080/messanger/webapi/messages

如果我克利克此鏈接http://localhost:8080/messanger/webapi/myresource我得到Got it!

我加入Jersy與行家與此數據:

  • org.glassfish.jersey.archetypes
  • Jersey的快速啓動-web應用
  • 2.16

MessageResource.java

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 


@Path("/messages") 
public class MessageResource { 

    @GET 
    @Produces(MediaType.TEXT_PLAIN) 
    public String getMessages(){ 
     return "Hello world"; 
    } 

} 

作業編號:

package org.test.messanger; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

/** 
* Root resource (exposed at "myresource" path) 
*/ 
@Path("myresource") 
public class MyResource { 

    /** 
    * Method handling HTTP GET requests. The returned object will be sent 
    * to the client as "text/plain" media type. 
    * 
    * @return String that will be returned as a text/plain response. 
    */ 
    @GET 
    @Produces(MediaType.TEXT_PLAIN) 
    public String getIt() { 
     return "Got it!"; 
    } 
} 

的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!-- This web.xml file is not required when using Servlet 3.0 container, 
    see implementation details http://jersey.java.net/nonav/documentation/latest/jax-rs.html --> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <servlet> 
     <servlet-name>Jersey Web Application</servlet-name> 
     <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>jersey.config.server.provider.packages</param-name> 
      <param-value>org.test.messanger</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Jersey Web Application</servlet-name> 
     <url-pattern>/webapi/*</url-pattern> 
    </servlet-mapping> 
</web-app> 
+1

請停止刪除您的帖子,並再次發佈**完全相同的問題。這已經是第三次了。 –

+0

你給我們展示的東西看起來很好。問題在於你沒有向我們展示或告訴我們的東西。只是爲了讓您知道您可能沒有得到答案的原因,是因爲問題不能從您提供的內容中重現或發現。這並不是說你沒有提供一個很好的示例/好問的問題,它只是提供了一個可靠的工作示例。我一直在使用這個原型,並且從來沒有遇到過你正在面臨的問題 –

+0

我只是說運行一個'mvn clean package'。從'target'中取出'.war'並將其放入Tomcat'webapp'中。刪除任何舊戰爭(爆炸戰爭)。啓動Tomcat。然後在webapps裏面看看爆炸的戰爭,確保這個類在WEB-INF/classes –

回答

0

做一兩件事。

  1. 複印從目標/ messenger.jar,並將其粘貼在位置TOMCAT_DIR/Tomcat的/ web應用 Tomcat的內部文件夾中的messenger.jar。 TOMCAT_DIR是您本地tomcat的目錄位置。

  2. 現在去TOMCAT_DIR/tomcat的/ bin並啓動的startup.batstartup.sh

  3. 現在打開網址http://localhost:8080/messanger/webapi/messages。這應該工作。

如果它工作,然後從eclipse中刪除配置的tomcat服務器並再次配置它。

0

看起來好像一切正​​常,但messenger.jar在您第一次嘗試託管此項目時已分發到Tomcat服務器的構建目錄中。

如果不正確地通過Manager門戶

localhost:port#/manager

通過取消部署項目管理Tomcat,然後Tomcat將嘗試重建您的舊項目。

可選擇使用Tomcat的管理界面,在你的Tomcat目錄TOMCAT_DIR/tomcat的/工作刪除具有相同名稱作爲項目的文件夾,當你再次訪問網址Tomcat會從你的TOMCAT_DIR/tomcat的建設的最新部署/ webapps文件夾。