djm*_*jmj 5 ear ejb jax-rs java-ee
JAX-RS需要网络模块WAR还是我做错了什么?
每个教程都声明要配置其余服务web.xml.但是在ejb-module中没有web.xml.我必须WAR为休息服务创建一个公正吗?
在我的ejb模块中,我想将EJB公开为休息服务,但无法使其工作.调用"localhost:8080/EjbModule/rest/test/method"会导致404
项目结构
- ear
- EjbModule.jar
Run Code Online (Sandbox Code Playgroud)
码
将Bean公开为JAX-WS Web服务并在浏览器中进行测试是没有问题的.
@ApplicationPath("rest")
public class RestApplication extends Application
{
@Override
public Set<Class<?>> getClasses()
{
final Set<Class<?>> classes = new HashSet<>(1);
classes.add(TestService.class);
return classes;
}
}
@Stateless
@Path("/test")
public class TestService
{
@Path("/method")
@GET
@Produces(MediaType.TEXT_HTML)
public String test()
{
return new Date().toString();
}
}
Run Code Online (Sandbox Code Playgroud)
环境:Glassfish 4.0
编辑:
创建单独WAR的休息服务按预期工作.
来自JAX-RS Specification 2.0 p.8:
2.3.2 Servlet
JAX-RS应用程序在.war文件中打包为Web应用程序.应用程序类打包在WEB-INF/classes或WEB-INF/lib中,所需的库打包在WEB-INF/lib中.有关Web应用程序打包的完整详细信息,请参阅Servlet规范.
如果要在Web容器中部署JAX-RS应用程序,这是标准方法.但是,该规范还指出应用程序可以在不同的容器中运行,如ejb-containers甚至Java SE环境.但对于其他容器,没有指定:
实现可以提供在其他类型的容器中托管JAX-RS应用程序的工具,这些工具不在本规范的范围内.
| 归档时间: |
|
| 查看次数: |
2249 次 |
| 最近记录: |