Struts 上的 Rest API

问题描述 投票:0回答:2

我目前正在为 struts 应用程序添加休息服务。我们使用的 struts 是 1.x 。我知道休息插件仅支持 struts2 并且该插件也不是完全休息的。在这种情况下,rest 插件是一个好的选择吗?为了休息插件支持是否值得从 Struts 1.x 迁移到 2?我用谷歌搜索了这个主题,我可以找到很少的关于这个主题的资源。了解其他人如何向他们的应用程序添加休息服务将非常有帮助。

我找到的资源:

第二个链接中的代码有点臃肿,无法扩展以迁移大型 Struts 1.x 应用程序。我考虑过使用 jersey 但我不知道如何将它与 struts 1.x 一起使用。可能是我做错了。如果有人对开发宁静的应用程序有一些想法,请帮忙。

java rest struts
2个回答
3
投票

嗯,我会转向 Struts 2,只是因为 Struts 1 很糟糕,但这就是我。

Jersey 将非常方便地与 Struts 1 应用程序一起插入。

它在 web.xml 中简单配置,它将与您的 Struts 应用程序共享相同的会话状态,并且根本不会发生冲突。

Struts 应用程序中预先存在的任何逻辑都可以通过最基本的重构轻松重用和重新调整用途。最糟糕的情况就是将其从 Struts 操作中拉出(尽管它们本身非常通用,但您可以直接使用它们)。

此外,所有标准 Servlet 内容都可以在 Jersey 中正常工作,例如过滤器和会话等等。由于很多人使用过滤器来确保安全或设置持久性等,因此它应该在现有基础设施后面工作。

只需将其启动并将其并联放置即可。


0
投票

将 Jersey 与 struts 1 结合使用是在项目中实现 Rest 性质的好主意。

我们可以在 struts 1 中实现 jersey 的几个简单步骤

  • 下载包含所有依赖项的球衣罐
  • 将所有 jar 添加到构建路径
  • 修改 web.xml 以包含其余性质

以下 jar 与 java 8 兼容

  • jakarta.activation-1.2.1.jar
  • jakarta.activation-api-1.2.1.jar
  • jakarta.annotation-api-1.3.5.jar
  • jakarta.inject-2.6.1.jar
  • jakarta.validation-api-2.0.2.jar
  • jakarta.ws.rs-api-2.1.6.jar
  • jakarta.xml.bind-api-2.3.2.jar
  • jersey-client-2.29.1.jar
  • jersey-common-2.29.1.jar
  • jersey-container-servlet-2.29.1.jar
  • jersey-container-servlet-core-2.29.1.jar
  • 泽西媒体-jaxb-2.29.1.jar
  • jersey-server-2.29.1.jar
  • osgi-资源定位器-1.0.3.jar

修改

web.xml
和新的 servlet 映射

<servlet> 
    <servlet-name>Rest</servlet-name> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
    <init-param> 
        <param-name>jersey.config.server.provider.packages</param-name> 
        <param-value>com.myorg.rest.controllers</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Rest</servlet-name> 
    <url-pattern>/rest/v1/*</url-pattern> 
</servlet-mapping> 

现在我们可以编写休息控制器并通过ajax调用访问它

脚注

© www.soinside.com 2019 - 2024. All rights reserved.