我似乎无法弄明白。尝试使用注释和web.xml来配置webcontent的路径,但不断获取未知资源。
泽西岛主要:
@ApplicationPath("/")
public class App extends PackagesResourceConfig {
public App() {
super("webapp.resources");
}
}
泽西岛默认路径“/”:( hello world works!index.html \ jsp不)
@Path("/")
@Produces(MediaType.TEXT_HTML)
public class RootResource
{
@GET
public String index(@Context HttpServletRequest request) {
return "hello world";
}
}
我尝试了什么:
您认为提供html或jsp等网页的解决方案是什么?
有没有办法用泽西(没有弹簧!)和可见的\模板?
答案 0 :(得分:3)
回答我的问题。 futuretelematics的解决方案应该适用于大多数人。这是一个已知且有效的解决方案。所以当我这样做时为什么不起作用:
问题1: 经过多次摆弄后,我发现一旦我将应用程序根路径从“/”更改为“/ api”(或/ ???),突然一切都开始发挥作用。必须是球衣的事情。我在某处阅读为了使“/”工作,您应该使用web.xml中的过滤器进行映射。我很想知道是否有人成功地做到了这一点。
所以现在它用JSP提供我的初始页面。那个页面我可以用jsons以休息方式操作。
问题2: 使@viewable工作只是在WebContent中创建正确的文件夹结构路径(com / webapp / model / index(< -jsp))。这就是可查看页面重定向的工作原理。
答案 1 :(得分:1)
这应该很容易;尝试以下方法:
/WEB-INF/web.xml文件:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>Your REST end Point</display-name>
<!-- /////////////////////// JERSEY (NO SPRING) ///////////////////////// -->
<servlet>
<servlet-name>MyRESTEndPoint</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<!- Package where jersey will scan for resources ->
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.mycompany</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyRESTEndPoint</servlet-name>
<url-pattern>/MyRESTEndPoint/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
AT软件包com.mycompany(在web.xml上查看 )放置应用程序类:
package com.mycompany;
public class MyApp
extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> s = new HashSet<Class<?>>();
s.add(MyResource.class);
// ... add other resources
return s;
}
}
创建资源,如:
@Path("myResourcePath")
public class R01ERESTResourceForStructure {
@GET @Path("{myResourceId}")
@Produces(MediaType.APPLICATION_XML)
public Response load(@PathParam("myResourceId") final String id) {
....
}
}
您的网址应为:like / MyRESTEndPoint / myResourcePath / myResourceId
如果您使用的是SPRING或GUICE,则web.xml应该有点不同
答案 2 :(得分:0)
Jersey为jersey-mvc-jsp扩展模块中的JSP模板提供支持