gpt4 book ai didi

带有 Struts 的 REST API

转载 作者:行者123 更新时间:2023-12-04 18:35:14 27 4
gpt4 key购买 nike

我正在尝试将 REST API 添加到现有的 struts 2 应用程序。

想法是让应用程序的一部分使用标准 struts 映射,而另一部分使用 REST。

所以我使用了 struts2-rest-plugin插件,并添加如下配置:

struts.xml:

<constant name="rest" value="org.apache.struts2.rest.RestActionMapper"/>
<constant name="struts.mapper.class"
value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper"/>
<constant name="struts.mapper.prefixMapping" value="/rest:rest,/:struts"/>

struts.properties:

struts.action.extension=,htm,action,xml,json

TasksController.java:

package xxx.common.webservice.rest;

public class TasksController implements ModelDriven<Task> {

public String update() {
return "UPDATE";
}

// Handles /tasks/{id} GET requests
public String show() {
return "YES";
}

@Override
public Task getModel() {
// TODO Auto-generated method stub
return null;
}

}

使用此配置,基本的 struts Action 可以工作,但我无法让 REST Action 工作。我还尝试了不同的 struts.xml 配置(包括约定插件选项),但没有任何成功,映射从未显示为 config-brower plugin .

知道我错过了什么或做错了什么吗?

最佳答案

它终于成功了,但那是一段时间以前的事了,我不记得我到底做了什么,这是我的配置,希望对你有帮助。

struts.xml

<constant name="struts.convention.action.mapAllMatches" value="true"/>
<constant name="struts.convention.package.locators" value="webservice"/>
<constant name="struts.convention.action.suffix" value="Controller"/>
<constant name="struts.convention.default.parent.package" value="rest-default"/>


<constant name="struts.mapper.class" value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper" />
<constant name="struts.mapper.prefixMapping" value="/rest:rest,:struts" />

<package name="home" namespace="/" extends="struts-default">
...
</package>

TaskController.java

package com.test.webservice.rest;

public class TaskController extends RestActionSupport implements
ModelDriven<TaskDTO> {
public final HttpHeaderResult show() {
...
}
...
}

关于带有 Struts 的 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8678909/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com