Servlets 为web服务和servlet配置web.xml

Servlets 为web服务和servlet配置web.xml,servlets,restlet,web.xml,Servlets,Restlet,Web.xml,我对restles不熟悉。正在尝试配置web.xml(在JBoss上)。我有两个条目,一个用于servlet(与webservices无关),另一个用于webservices,使用Restlet。以下是参赛作品 <servlet> <servlet-name>AuthenticationServlet</servlet-name> <servlet-class>com.safeid.web.server.api.servlet.Authe

我对restles不熟悉。正在尝试配置web.xml(在JBoss上)。我有两个条目,一个用于servlet(与webservices无关),另一个用于webservices,使用Restlet。以下是参赛作品

 <servlet>
  <servlet-name>AuthenticationServlet</servlet-name>
  <servlet-class>com.safeid.web.server.api.servlet.AuthenticationServlet</servlet-class>
  <load-on-startup>2</load-on-startup>
 </servlet>

 <servlet-mapping>
  <servlet-name>AuthenticationServlet</servlet-name>
  <url-pattern>/authenticate/*</url-pattern>
 </servlet-mapping>


<!--  Start of Entries for the REST Web Services. -->

  <context-param>
   <param-name>org.restlet.application</param-name>
   <param-value>com.safeid.web.server.SafeIDRouterApplication</param-value>
  </context-param>

 <servlet>
  <servlet-name>RestletServlet</servlet-name>
  <servlet-class>com.noelios.restlet.ext.servlet.ServerServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>


 <servlet-mapping>
  <servlet-name>RestletServlet</servlet-name>
  <url-pattern>/*</url-pattern>
 </servlet-mapping>
<!-- END of Entries for the REST Web Services.-->

AuthenticationServlet
com.safeid.web.server.api.servlet.AuthenticationServlet
2.
AuthenticationServlet
/鉴定/*
org.restlet.application
com.safeid.web.server.SafeIDRouterApplication
RestletServlet
com.noelios.restlet.ext.servlet.ServerServlet
1.
RestletServlet
/*
两者不能同时工作。在上面的设置中,Restlet可以工作。然而,当我改变

RestletServlet /*

差不多

<servlet-mapping>
  <servlet-name>RestletServlet</servlet-name>
  <url-pattern>/credential/*</url-pattern>
 </servlet-mapping>

RestletServlet
/凭证/*

Restlet停止工作,AuthenticationServlet工作正常。我在这里遗漏了什么?

看起来您遗漏了以下示例中的init参数

<servlet>
    <servlet-name>MyApplication</servlet-name> 
    <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
    <init-param>
        <param-name>org.restlet.application</param-name>
        <param-value>my.class.that.extends.Application.MyApplication</param-value>
    </init-param> 
</servlet>

我的申请
org.restlet.ext.servlet.ServerServlet
org.restlet.application
my.class.that.extends.Application.MyApplication

您需要一个扩展org.restlet.Application的类(至少在restlet2.0中是这样)。

我也遇到了类似的挫折。也许我的发现会有所帮助

我的应用程序类中有如下路由器条目:

router.attach("/users", UsersResource.class);
<servlet-mapping>
    <servlet-name>Sandbox</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Sandbox</servlet-name>
    <url-pattern>/users/*</url-pattern>
</servlet-mapping>
http://www.mywebsite.com/users
http://www.mywebsite.com/rest/users
当我的servlet映射是这样的时候,一切都很顺利:

router.attach("/users", UsersResource.class);
<servlet-mapping>
    <servlet-name>Sandbox</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Sandbox</servlet-name>
    <url-pattern>/users/*</url-pattern>
</servlet-mapping>
http://www.mywebsite.com/users
http://www.mywebsite.com/rest/users
您必须将其更改为:

http://www.mywebsite.com/users/users
当然,您可以将url模式设置为您想要的任何形式:

<servlet-mapping>
    <servlet-name>Sandbox</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>
url模式被剥离,您可以从应用程序类中获得任何用于自己路由目的的剩余内容


HTH

最后一个映射应该可以工作。“休息停止工作”是什么意思?到底发生了什么?您是否调用了正确的URL,资源是否位于正确的位置?请从开发人员的角度,而不是最终用户的角度来阐述。不工作,我的意思是这是一个404错误。哦。。我有。上面的web.xml片段与我面临的问题有关。我现在正在考虑将webservice与servlet/war代码的其余部分分离。