myEclipse IDEを使用してWebSphere 8.5.5.5サーバーに2つの小さなJEE 6 Webアプリケーションをデプロイしました。どちらもそれぞれ1つの簡単なRESTエンドポイントを含んでいます。エンドポイントは一方のエンドポイントで動作していて、他方のエンドポイントでは動作していません。 WAS 8.5にバンドルされているJAX-RS固有のWink実装を使用しています。作業アプリのルックスのためmyEclipseを使用したJEE 6/WebSphere 8.5のリソースファイルNotFoundException
package com.somewhere.jee6.hello;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("test-services")
public class HelloApplication extends Application {
}
package com.somewhere.jee6.hello.resource;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@Path("/hello")
public class HelloResource {
@GET
public String check() {
return "Hello, it works";
}
}
私のクラスパス:ここ
Exception:java.io.FileNotFoundException SourceId:com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters -IOE ProbeId:1044
java.io.FileNotFoundException: SRVE0190E: File not found: /resources/tryme
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor._processEDR(DefaultExtensionProcessor.java:949)
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.processEDR(DefaultExtensionProcessor.java:930)
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:484)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1114)
が働いてエンドポイントを持っている最初のアプリの2つのクラスファイルです:ここで私は第二のアプリで受信していますエラーがありますこのように:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_6_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="output" path="WebContent/WEB-INF/classes"/>
</classpath>
上記の "Hello、それが動作" を返す作業エンドポイントは次のとおりです。
01ここで
動作しないエンドポイントを有する第2のアプリの2つのクラスファイルです:
package com.somewhere.mdr.rest;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ApplicationPath("resources")
public class MdrApplication extends Application {
private static final Logger logger =
LoggerFactory.getLogger(MdrApplication.class);
}
package com.somewhere.mdr.rest.resource;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Path("/tryme")
public class TrymeResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
public String getTryMe() throws Exception {
return "Hello, this doesn't work!!";
}
は非稼働アプリケーションのためのクラスパスは、次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_6_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry combineaccessrules="false" kind="src" path="/mdr-message"/>
<classpathentry combineaccessrules="false" kind="src" path="/mbr-stub"/>
<classpathentry combineaccessrules="false" kind="src" path="/mdr-config"/>
<classpathentry kind="output" path="WebContent/WEB-INF/classes"/>
</classpath>
エラーを返すエンドポイントがある:
アプリケーションの両方のための私のweb.xmlは次のようになります。
今<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
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_3_0.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
、私の同僚の1は、問題は第二のアプリが見ることができないということでなければならないことが示唆されましたJEE 6 jars、それは理にかなっています。しかし、私はそれがどのように起こっているか把握していないようです。
必要に応じてさらに詳しい情報を提供していただきます。また、特定のエラーが他の質問でも言及されていることを知っていますが、私はそれらの質問を検索し、無駄にそれらのことを試しました。したがって、根本的な原因が異なるように見えるので、私は新しい質問を投稿しています。
多くの感謝!
欠落したインポートとレスポンスとストリングの戻り値の両方のタイプは、切り取りと貼り付けの両方のエラーでした。私は上記の元の投稿にそれらを修正しました。しかし、pkgのステートメントが欠落しているのは、そのクラスがデフォルトのpkgレベルであったためです。しかし、アプリケーション間の一貫性を維持するために、com.somewhere.jee6.hello pkgの中に移動しました。私はその動きの後にまだ動作するアプリ1を再テストしました。すべての変更は上記に反映されています。あなたの目に感謝します。他のアイデア? – risingTide
web.xml以外のアイデアは、RESTサーブレットが含まれていないため、正しく表示されません。確かに、MyEclipse 2015のプロジェクトファイルのようなものはほとんどありません。私は、あなたがそれを理解するのに十分な情報を提供していないと思っていますが、少なくともあなたの答えからは、 –