JBoss EAP 5.1,RestEasy/JAX-RS 示例无效
JBoss EAP 5.1, RestEasy/JAX-RS examples not working
所以虽然我知道我们应该为 JBoss EAP 6 或更好的 JBoss EAP 7 编写代码 - 这并不总是可行的,我希望将 RESTFul 功能添加到遗留 JBoss EAP 5.1 生产服务器。 code/apps 最终将迁移到 JBoss EAP 7,但同时需要支持 JBoss 5。
使用这些示例:
https://developer.jboss.org/wiki/RestEasyInJBossDeveloperStudioJBDSQuickstart
https://developer.jboss.org/wiki/UsingTheRESTEasySimpleProjectExampleInJBDS3
我能够使用 JBoss EAP 7 版本,因为这是 JBoss 开发人员工具 Git Repo 示例当前支持的 - 但是,可以将其放入JBoss EAP 5.
我还找到了 jboss 开发人员演示:
https://github.com/jboss-developer/jboss-developer-demos
但这也只是 Jboss 7
然后我找到了大家最喜欢的 MyKong 例子:
https://www.mkyong.com/webservices/jax-rs/jersey-hello-world-example/
而且也无法正常工作。我很好奇是否有人有任何在 JBoss EAP 5 中运行的简单 JAX-RS 示例。EAP 5 确实在大约 6 个月前达到了 EOL,但我确信它仍然需要支持一点时间。
所以经过一番努力之后 - 一切基本上都融会贯通了。我执行了以下操作。
在现有的或新的 Eclipse Dynamic Web Project V 2.5 中...
- 在源文件夹中创建一个名为 "com.mycompany.examples.resteasy" 的新包
- 在包中创建一个名为 "TestApplication" 的 class,代码如下:
package com.mycompany.examples.resteasy;
import javax.ws.rs.core.Application;
import java.util.HashSet;
import java.util.Set;
public class TestApplication extends Application {
private Set singletons = new HashSet();
public TestApplication() {
singletons.add(new Test());
}
@Override
public Set getSingletons() {
return singletons;
}
@Override
public Set> getClasses() {
// TODO Auto-generated method stub
return null;
}
}
- 使用以下代码创建另一个名为 "Test" 的 java class:
package com.mycompany.examples.resteasy;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@Path("/")
public class Test {
public Test() {
}
@GET
@Path("/test")
public String test() {
return "Hello RESTFul";
}
}
- Add/modify web.xml 中的以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5"
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_2_5.xsd">
<display-name>RESTEasy FileUpload Example</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>HelloRESTFul</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.mycompany.examples.resteasy.TestApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HelloRESTFul</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
- 清理并构建您的 WAR,部署。
如果您的应用程序 WAR 文件名为 "C1IPAuthService",您应该能够导航到以下 URL(如果您在本地测试)
http://localhost:8080/C1IPAuthService/test
并收到以下输出:
你好RESTFul
所以虽然我知道我们应该为 JBoss EAP 6 或更好的 JBoss EAP 7 编写代码 - 这并不总是可行的,我希望将 RESTFul 功能添加到遗留 JBoss EAP 5.1 生产服务器。 code/apps 最终将迁移到 JBoss EAP 7,但同时需要支持 JBoss 5。
使用这些示例: https://developer.jboss.org/wiki/RestEasyInJBossDeveloperStudioJBDSQuickstart https://developer.jboss.org/wiki/UsingTheRESTEasySimpleProjectExampleInJBDS3
我能够使用 JBoss EAP 7 版本,因为这是 JBoss 开发人员工具 Git Repo 示例当前支持的 - 但是,可以将其放入JBoss EAP 5.
我还找到了 jboss 开发人员演示: https://github.com/jboss-developer/jboss-developer-demos
但这也只是 Jboss 7
然后我找到了大家最喜欢的 MyKong 例子: https://www.mkyong.com/webservices/jax-rs/jersey-hello-world-example/
而且也无法正常工作。我很好奇是否有人有任何在 JBoss EAP 5 中运行的简单 JAX-RS 示例。EAP 5 确实在大约 6 个月前达到了 EOL,但我确信它仍然需要支持一点时间。
所以经过一番努力之后 - 一切基本上都融会贯通了。我执行了以下操作。
在现有的或新的 Eclipse Dynamic Web Project V 2.5 中...
- 在源文件夹中创建一个名为 "com.mycompany.examples.resteasy" 的新包
- 在包中创建一个名为 "TestApplication" 的 class,代码如下:
package com.mycompany.examples.resteasy;
import javax.ws.rs.core.Application;
import java.util.HashSet;
import java.util.Set;
public class TestApplication extends Application {
private Set singletons = new HashSet();
public TestApplication() {
singletons.add(new Test());
}
@Override
public Set getSingletons() {
return singletons;
}
@Override
public Set> getClasses() {
// TODO Auto-generated method stub
return null;
}
}
- 使用以下代码创建另一个名为 "Test" 的 java class:
package com.mycompany.examples.resteasy;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@Path("/")
public class Test {
public Test() {
}
@GET
@Path("/test")
public String test() {
return "Hello RESTFul";
}
}
- Add/modify web.xml 中的以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5"
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_2_5.xsd">
<display-name>RESTEasy FileUpload Example</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>HelloRESTFul</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.mycompany.examples.resteasy.TestApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HelloRESTFul</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
- 清理并构建您的 WAR,部署。
如果您的应用程序 WAR 文件名为 "C1IPAuthService",您应该能够导航到以下 URL(如果您在本地测试) http://localhost:8080/C1IPAuthService/test
并收到以下输出: 你好RESTFul