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