Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 独立战争中的servlet-部分共享其上下文根_Java_Servlets_Jakarta Ee_Jboss - Fatal编程技术网

Java 独立战争中的servlet-部分共享其上下文根

Java 独立战争中的servlet-部分共享其上下文根,java,servlets,jakarta-ee,jboss,Java,Servlets,Jakarta Ee,Jboss,对于web服务项目,我需要在以下位置的web服务器上安装两个Java EE web的API版本: example.com/myservice/v1和 example.com/myservice/v2 分离不同版本的最安全方法似乎是将它们部署在不同的WAR文件中,一个用于v1,另一个用于v2 我在JBoss-Web.xml中创建并部署了两个JBoss 6 Java EE 6 Web概要文件应用程序: <?xml version="1.0" encoding="UTF-8"?> &l

对于web服务项目,我需要在以下位置的web服务器上安装两个Java EE web的API版本:

  • example.com/myservice/v1
  • example.com/myservice/v2
分离不同版本的最安全方法似乎是将它们部署在不同的WAR文件中,一个用于
v1
,另一个用于
v2

我在JBoss-Web.xml中创建并部署了两个JBoss 6 Java EE 6 Web概要文件应用程序:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
  <context-root>/test/v1</context-root>
</jboss-web>

/测试/v1


/测试/v2
两个war文件都已部署并运行,没有错误。JBoss没有抱怨他们使用相同的根上下文部分
/test


这是servlet容器(指定)的标准行为,还是只是JBoss功能,不保证可移植?

例如,Oracle Glassfish文档说-上下文根中没有斜杠限制

另一个例子是JBoss文档

Tomcat还支持嵌套的上下文路径-请参阅的命名部分

规范中也不要求上下文根中没有斜杠。我认为这意味着,与任何其他功能一样,您可以假设它在应用程序服务器上工作,但其配置方式可能有所不同,当然,在移动到另一个容器之前,您必须测试您的应用程序。

关于上下文根:

web应用程序的上下文根确定Tomcat的哪些URL 将委托给您的web应用程序。如果应用程序的上下文 root是myapp,则将处理对/myapp或/myapp/*的任何请求 除非存在更具体的上下文根,否则由应用程序执行。如果 第二个web应用程序被分配了上下文根myapp/help,一个 对/myapp/help/help.jsp的请求将由第二个web服务器处理 应用程序,而不是第一个

您在
jboss web.xml
中定义的两个上下文根是i)
/test/v1
和ii)
/test/v2
。这两个URL完全不同,因为它们指定了两个不同的URL

所以你的担心是:

JBoss没有抱怨他们使用相同的根上下文部件/测试


不适用,因为它们彼此不同。

感谢您的回答,它引用了Larry0ua接受的答案中的链接。我还不能投票,但稍后会投票。我没想到JBoss会抱怨——事实上,我很高兴JBoss接受了两个部分重叠的上下文根。
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
  <context-root>/test/v2</context-root>
</jboss-web>