将Web服务(JAX-RS)与Javascripts集成

时间:2011-09-02 08:20:30

标签: java web-services jax-rs stripes

我有一个用Stripes开发的Web应用程序。现在我需要在同一个应用程序中开发RESTful webservices(可能使用JAX-RS)。如何集成我的Stripes应用程序以包含这些Web服务,是否有可用的示例或除JAX-RS之外的任何其他方法?

2 个答案:

答案 0 :(得分:3)

由于Stripes是一个Web应用程序框架(即主要是表示层),而JAX-RS是一个执行RESTful Web服务的标准(即主要是业务逻辑层),我很想有两个独立的servlet,一个用于Stripes部分,一个用于JAX-RS部分。然后Stripes部分将访问JAX-RS部件作为其后端。

可能可以将两个部件部署在同一个容器中,但我对此没有多少经验。

(你会想要选择你很早就使用的JAX-RS实现。我所知道的是Jersey和CXF,他们有足够的差异 - 来自不同的用例集 - 你赢了'我想在它们之间切换。)

答案 1 :(得分:0)

我现在遇到同样的问题。 JAX-WS servlet应该与Stripes servlet结合使用,这就是问题所在。

web.xml摘录:

<servlet>
    <servlet-name>StripesDispatcher</servlet-name>
    <servlet-class>net.sourceforge.stripes.controller.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<filter-mapping>
    <filter-name>StripesFilter</filter-name>
    <servlet-name>StripesDispatcher</servlet-name>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping> 

<servlet-mapping>
    <servlet-name>StripesDispatcher</servlet-name>
    <url-pattern>*.action</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>WebConnectorService</servlet-name>
    <servlet-class>my.sample.application.WebConnectorService</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>WebConnectorService</servlet-name>
    <url-pattern>/ws</url-pattern>
</servlet-mapping>

在这种情况下,JAX-WS servlet正在运行,但Stripes不处理所有其他请求。 有没有人对此问题有任何新的更新?感谢。

更新:我已经发现两个servlet都处理了请求,但问题是因为现在应用程序的上下文根等于WAR包的名称。但是我有

<context-root>/</context-root>

在jboss-web.xml中,如果不包含WebConnector servlet,它的行为与预期的一样。只要Web.xml中包含WebConnector servlet,就会忽略上面的配置。