问题标签 [struts2-rest-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 我可以在 Struts 2 中映射一个返回 Object 的操作方法吗
我使用 Struts2 将动作映射到返回的方法String
。我可以使用其他类型吗?可以使用哪些类型?
我发现使用 REST 插件的代码
它表明它映射到show
返回的方法HttpHeaders
。它不是一个String
. 这个怎么运作?
java - 使用 Struts 2 REST 插件的操作未映射错误
我编写了一个简单的代码来将 rest 与 Struts 2.3.24 集成
我有我的 Struts XML:
我的控制器类是:
每当我尝试访问该服务时,它都会显示未找到操作未映射异常。
请让我知道我还需要做什么才能使代码正常工作。
java - Struts2 Rest Mapper 接管非 Rest Json 结果
Struts 版本: 2.5.2
POM 中的 Struts 依赖项
Struts xml
动作类
我正在使用 DataTables JS 库并尝试为网格编写操作。我有一个 api 已经为我创建了 json,我只需要将它流回来。我创建了一个自定义结果来处理这个问题,但在操作中映射的结果永远不会运行。无论结果类型如何,REST 映射器都会在看到客户端请求了 application/json 后立即尝试处理它。我在配置中使用了前缀映射,让所有 url 都使用 /grid 绕过其余映射器。它似乎以某种能力工作,因为它运行正确的拦截器堆栈并使用 @Action 注释信息来映射 url。但是,指定的结果没有运行,而是由其余映射器根据我收到的堆栈跟踪提供。对于 /grid 命名空间中的任何操作,我想完全绕过其余映射器。我是否在配置中做错了什么仍然导致休息参与对这些操作的请求?
堆栈跟踪
java - 命名空间(和操作)是否应该以斜杠开头?
我们正在开发一个基于 Struts 2 的 Web 应用程序。
请让我知道 Strust 2 应用程序中哪个是正确的(标准)
很长的故事:
要获取我们始终在下面使用的操作 url
我们尝试为我们的应用程序添加休息支持,并使我们的应用程序支持休息和非休息操作,与REST 和非 RESTful URL 的共同配置中提到的相同
还有Struts2 REST 和 Non-REST action 一起。
似乎<s:url var="url" action="foo" namespace="bar" />
总是映射到默认操作,而<s:url var="url" action="/foo" namespace="/bar" />
工作正常。
它是类中的错误org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper
还是动作和命名空间应该总是有斜线?
java - 在 Struts2 RESTful 插件 POST 请求中返回响应
我已经从这里获取信息实现了 Struts2 REST API
有没有办法在 Struts2 的 restful 插件中返回自定义响应。我做了所有必要的改变,比如
从 这个问题得到。 我仍然收到此错误
如果我不添加上述行,我仍然会得到相同的响应。
这是我提供的操作struts.xml
:
这服务于所有请求GET
, POST
, PUT
, UPDATE
。
将 post 方法的返回类型从 HttpHeader 更改为 String 后,我仍然遇到相同的错误
这是我为 POST 编写的代码:
这是返回类型的 POST 请求方法String
:
如果我发送对 xml 或 json 的请求,我得到了完美的响应,我确实得到了基于扩展的 xml 和 json。像 http://localhost:8080/restdemoapplication/restdemo.xml
,http://localhost:8080/restdemoapplication/restdemo.json
你可以看到我得到的回应。我为post写的方法上面写着name create。我在正文中确实有数据,并且我确实在 create 方法中完美地获取了数据。
现在在帖子中,正如我在多个示例中看到的那样
struts-rest , stuts2-rest-sample , struts2-rest-shopping-list
我不想像这些应用程序那样返回对发布请求的响应。我想返回我自己的响应,它将是一个状态码和这样的消息
经过一些调试后,我发现DefaultContentTypeHandlerManager
在 struts2-rest-plugin 中考虑xhtml
中将其视为默认模板。虽然它应该是 XML 或 JSON。
我想回来
在接受 POST 请求时使用 XML 或 JSON 格式。
(这是应用程序同时接受非静态请求和静态请求。我可以将 xml 或 json 作为默认模板,但我不想要,因为它会影响非静态请求。)
java - ConfigurationException:不允许使用 Struts 2 和 REST 插件的方法发送操作消息
我正在使用 Struts 2.5.14.1 和 Struts REST 插件。
除了自定义方法外,一切似乎都运行良好。
、index()
和show()
其他默认方法有效。
但是当我给出一些不同的自定义方法时,它似乎不起作用并引发错误。
rest - 通过 Struts2 Rest 流式传输文件
我需要使用 Struts2 REST 流式传输文件。尽管流式传输正常,但 Web 服务器会引发错误:
异常处理结果。:java.io.IOException: UT010029: Stream is closed
这是动作代码:
网络服务器日志:
ember.js - 我需要在 ember.js 适配器中自定义序列化程序
发送 PUT 请求时,我的服务器需要以下格式的 json。我的服务器是一个使用 struts2 rest 插件设计的 rest api。
我尝试忽略后端的属性,但这只是忽略了整个 json 并将空值提交给 sql-server。我需要重写或自定义 ember.js 的序列化,但我不知道如何。
rest - 发生异常时需要发送 HTTP-error-500
我设计了一个 RESTful 后端,使用struts2-rest-plugin
. 我的前端是Ember.js
CRUD应用程序。
当我尝试创建具有重复 ID 的新记录时,我的服务器显示异常。
如何将它作为 HTTP-error-code-500 发送到我的 ember.js 应用程序?
struts2 - struts2-rest-plugin 失败:“org.apache.struts2.dispatcher.Dispatcher - 找不到操作或结果”
我正在使用 struts2-rest-plugin 编写一个 REST 服务器。我正在使用 SoapUI 和 Postman 测试 REST 调用。我在这里关注示例代码:
https://cwiki.apache.org/confluence/display/WW/REST+Plugin
我的 REST 要求controller.index()
)并且controllers.create()
工作正常。
但是虽然controller.update()
成功调用了控制器并更新了记录:
...它在“返回”时失败,出现以下错误:
这是控制器:
...和struts.xml:
在我添加之前没有任何效果<package name="contacts">
。我尝试了几种不同的添加<action>
和<result>
,但无济于事。
示例网址:
GET Endpoint= http://localhost:8080, Resource= /StrutsContactsApp/contacts.json
: 好的POST Endpoint= http://localhost:8080, Resource= /StrutsContactsApp/contacts.json + JSON body
: 好的PUT Endpoint= http://localhost:8080, Resource= http://localhost:8080, + JSON body
:API调用成功,浏览器获取“HTTP 404”;日志显示“没有为操作 com.example.contactsapp.controllers.ContactsController 和结果更新定义结果”
问:关于解决错误和让“update()”与 struts2-rest-plugin 一起工作的任何建议?
PS:我在“update()”、“show()”和“destroy()”这三个方面都遇到了类似的问题。每个都期望一个 id(我可以在 Eclipse 调试器中看到它被正确传递)。
还:
struts-rest-plugin 支持像http://localhost:8080/myapp/contacts.json
(for JSON) 和http://localhost:8080/myapp/contacts.xml
(for XML) 这样的 URL。我不确定“update()”是否需要contacts.json/id
,或者只是contacts/id
。都不工作:(