我使用myEclipse IDE在WebSphere 8.5.5.5服務器上部署了兩個小的JEE 6 web應用程序。每個都包含一個簡單的REST端點。端點正在處理其中一個而不是另一個。我正在使用與WAS 8.5捆綁在一起的JAX-RS的固有Wink實現。這是我收到的第二個應用程序中的錯誤:使用myEclipse在JEE 6/WebSphere 8.5中的REST Resource FileNotFoundException
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)
下面是有工作的端點第一個應用程序的兩個類文件:
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";
}
}
我的工作程序看起來類路徑像這樣:
<?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>
工作終點返回 「你好,它的工作原理」 上面是:
下面是有終點的第二應用程序的兩個類文件不起作用:
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>
現在,我的一個同事建議,這個問題必須是第二個應用程序無法看到JEE 6罐,這是有道理的。但我似乎無法弄清楚這是如何發生的。
如果需要,我很樂意提供更多信息。另外,我知道在其他問題中提到了具體的錯誤,但我已經搜索了這些問題,並嘗試了這些無用的東西。因此,我發佈了一個新問題,因爲它看起來根本原因是不同的。
非常感謝!
缺少的導入和Response vs String返回類型都被剪切並粘貼錯誤。我在上面的原始帖子中修復了這些問題。但是,缺少的pkg語句實際上是合法的,因爲該類處於默認的pkg級別。爲了保持應用程序之間的一致性,我把它移到了com.somewhere.jee6.hello pkg中。我重新測試了一個應用程序1仍然有效後,該舉措。上面已經反映了所有的變化。謝謝你的眼睛。任何其他想法? – risingTide
除了web.xml之外,沒有其他想法看起來不正確,因爲它不包含REST servlet。事實上,沒有太多的項目文件看起來像MyEclipse 2015中的REST項目。我懷疑你沒有提供足夠的信息來解決它,但至少你似乎有它的工作,從你的其他答案。 –