JavaScud | Forum | JIRA | Blog |
  Dashboard > DWR中文文档 > ... > WEB-INF Configuration > Multiple dwr.xml files
  DWR中文文档 Log In View a printable version of the current page.  
  Multiple dwr.xml files
Added by 黑灵, last edited by 黑灵 on Oct 20, 2006
Labels: 
(None)

多个dwr.xml文件 和 J2EE安全

一般来说,你只需要一个dwr.xml文件,并且放置在默认的位置:WEB-INF/dwr.xml。 如果那样的话,你可以不用了解下面的配置。

有三个原因使你希望指定不同位置的dwr.xml文件。

  • 你希望让dwr.xml文件和它能访问到的资源在一起。在这种情况下你需要一个这样的配置: <param-value>WEB-INF/classes/com/yourco/dwr/dwr.xml</param-value>
  • 你有大量的远程调用类,希望把他们分成多个文件。在这种情况下你需要重复下面的配置几次,每一个中有不同的 param-name,并且以 'config' 开头。DWR会依次把他们都读进来。
  • DWR可以使用Servlet规范的J2EE的URL安全机制来给不同的用户不同的访问权限。你只需要简单的定义多个dwr servlet,并且制定不同的名字,url和访问权限。

如果你希望使用这一功能,那么语法是这样的:

<init-param> 
<param-name>config*****</param-name> 
<param-value>WEB-INF/dwr.xml</param-value> 
<description>What config file do we use?</description> 
</init-param>

在这里config*****意思是param-name要以字符串'config'开头。这个参数可以根据需要使用多次,但是不能相同。

一个使用J2EE的安全机制的例子:

<servlet> 
<servlet-name>dwr-user-invoker</servlet-name> 
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> 
<init-param> 
<param-name>config-user</param-name> 
<param-value>WEB-INF/dwr-user.xml</param-value> 
</init-param> 
</servlet> 
<servlet> 
<servlet-name>dwr-admin-invoker</servlet-name> 
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> 
<init-param> 
<param-name>config-admin</param-name> 
<param-value>WEB-INF/dwr-admin.xml</param-value> 
</init-param> 
</servlet> 
<servlet-mapping> 
<servlet-name>dwr-admin-invoker</servlet-name> 
<url-pattern>/dwradmin/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
<servlet-name>dwr-user-invoker</servlet-name> 
<url-pattern>/dwruser/*</url-pattern> 
</servlet-mapping> 

<security-constraint> 
<display-name>dwr-admin</display-name> 
<web-resource-collection> 
<web-resource-name>dwr-admin-collection</web-resource-name> 
<url-pattern>/dwradmin/*</url-pattern> 
</web-resource-collection> 
<auth-constraint> 
<role-name>admin</role-name> 
</auth-constraint> 
</security-constraint> 
<security-constraint> 
<display-name>dwr-user</display-name> 
<web-resource-collection> 
<web-resource-name>dwr-user-collection</web-resource-name> 
<url-pattern>/dwruser/*</url-pattern> 
</web-resource-collection> 
<auth-constraint> 
<role-name>user</role-name> 
</auth-constraint> 
</security-constraint>

我有以下web.xml文件请帮助看一下,
<servlet>
<servlet-name>dwr-s0010-invoker</servlet-name>
<display-name>DWR S0010</display-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>config-s0010</param-name>
<param-value>WEB-INF/dwr-s0010.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>dwr-s0100-invoker</servlet-name>
<display-name>DWR S0100</display-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>config-s0100</param-name>
<param-value>WEB-INF/dwr-s0100.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-s0010-invoker</servlet-name>
<url-pattern>/dwr-s0010/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dwr-s0100-invoker</servlet-name>
<url-pattern>/dwr-s0100/*</url-pattern>
</servlet-mapping>
运行的时候直接出找不到生成的js的对象。但是要是改成以下
<servlet-mapping>
<servlet-name>dwr-s0100-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
那么s0100生成的js能用s0010的还是用不了,反之。
求救!!!!!!!!!

Posted by Anonymous at Nov 27, 2007 14:21 | Reply To This
Site running on a free Atlassian Confluence Open Source Project License granted to WebWork China. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.3 Build:#808 May 29, 2007) - Bug/feature request - Contact Administrators