2017-09-10 7 views
-1

昨日私は最初の残りのAPIを作成しました。HTTPステータス404 - Restapiレスポンスで見つからないエラー

は、ここで私は実行すると、Apacheサーバは、Eclipseで罰金を開始私のコード

package RestClient; 

//import javax.servlet.annotation.WebServlet; 
import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

@Path("/RestClient") 
public class Restwebclient { 

    @GET 
    @Produces(MediaType.TEXT_XML) 
    public String sayXMLHello() { 
     return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>"; 
    } 

} 

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" version="3.1"> 
    <display-name>Webservice</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 

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

<init-param> 
    <param-name>jersey.config.server.provider.packages</param-name> 
    <param-value>RestClient</param-value> 
</init-param> 
<load-on-startup>1</load-on-startup> 
</servlet> 


<servlet-mapping> 
    <servlet-name>JAVA WS</servlet-name> 
    <url-pattern>/Test</url-pattern> 
</servlet-mapping> 

</web-app> 

です。しかし、私は私のデータが来ないと思っているローカルホスト上のURLを開くとき。そのスクリーンショットのようなエラーを表示します。

https://prnt.sc/gjatoq

同じこれらのURLとエラーだけでなく

http://localhost:8080/Webservice/RestClient 
http://localhost:8080/Webservice/Restwebclient 
http://localhost:8080/Webservice/Restwebclient/Test 
http://localhost:8080/Webservice/Test 

は、私は同様に場所を切り替えると同様、「Tomcatのインストールを使用する」オプションを選択し、一つ一つの事を試してみました。私は本当にこだわっています。

ローカルホストのURLの出力データ以外はすべて正常に動作しているようです。

それを動作させるために私に何かを分かち合うことができる人はいますか?

+0

eclipseプロジェクトの名前は "Webservice"ですか? –

+0

@ SharonBenAsher..yes、そのウェブサービス.. !! – LearnJava

+1

コンテキストルートを確認してください。それはプロジェクトの設定で "Web Project Settings"の下にあります –

答えて

0

あなたが@Produces(MediaType.TEXT_XML)を書くときただし、クライアントからの要求は、この応答を受け入れることができなければなりません、それはREPONSEがContent-Typeという名前のHTTPヘッダーが含まれることを意味し、その値がtext/xml

になります。クライアントは HTTPヘッダーを同じ値(application/xmlでもかまいません)で送信する必要があります。そうしないと、Webサーバーは応答を送信しないか、クライアントが応答を捨てることになります。

Chrome(または他のブラウザ)は、おそらく残りのAPIコール(または一般的にはAPI)をテストするのに最適なツールではありません。 HTTPヘッダーだけでなく、GET以外のHTTPメソッドを使用できるためです。 HTTPヘッダーの変更を許可するmodsのchrome web storeを検索するか、適切なhttpクライアントツールを使用してください。

私はFiddlerを使用しています。 HTTP要求コンテンツの完全な制御を含む豊富な機能を備えています。

+1

間違ったMediaTypeの場合、レスポンスは405と404のようなものでなければなりません。右?しかし、私はまた、郵便配達員のようなレストクライアントをお勧めします。 –

+0

@SharonBenAsher、あなたが言ったことは、あなたが私には分かりやすいと言いました。しかし、あなたのようにクライアントはXML応答を受け入れる能力を持っている必要があります。どうしたらいいですか?どんな提案も...私の最初の開発 – LearnJava

関連する問題