设置由 netbeans 编译的 J2EE 上下文路径
Setting context-path J2EE compiled by netbeans
我为大学开发了一个应用程序,但由于某些原因,我似乎无法设置它的上下文根。这就是我试图做的:
正在从 glassfish-web.xml 更改上下文根,但它不起作用。服务器识别曾经的 /web/ 路径(网络模块的名称)。这是我的 XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
<web-uri>web</web-uri>
<context-root>/</context-root>
<class-loader delegate="true"/>
<jsp-config>
<property name="keepgenerated" value="true">
<description>Keep a copy of the generated servlet class' java code.</description>
</property>
</jsp-config>
</glassfish-web-app>
我尝试使用 deploydir 从 asadmin 设置上下文根。它部署应用程序,但它 运行 它总是到 /web/ 路径。
我尝试检查 domains.xml,但我没有其他应用,我的应用也没有将上下文根设置为 属性。
我在服务器日志中看到的唯一奇怪的事情是:
SEVERE: Application previously deployed is not at its original location any more: file:/C:/Users/Danilo/Documents/NetBeansProjects/ibei/dist/gfdeploy/ibei/
WARNING: Unsupported deployment descriptors element web-uri value web.
WARNING: Context path from ServletContext: /web differs from path from bundle: web
最后一个警告真的很奇怪,因为网络应用程序被简单地调用了 "web"。我试图制作 web-uri web,web.war,web_ear 但它从未将 web-uri 识别为正确的:(
我终于找到了解决方案,感谢 JBoss 比 glassfish 和 netbeans 一起更好的文档。问题是由于存在一个由两个模块组成的APP引起的:
- EJB
- 网页
这两个模块包含在一个耳朵中,由于 netbeans,没有 "application.xml" 所以 glassfish 根本不看 "glassfish-web.xml" 并且使用 asadmin 也无法工作。唯一的解决方案是像这样添加 application.xml(在项目的 "configuration files" 文件夹中):
<application xmlns="http://java.sun.com/xml/ns/j2ee" version="1.4"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com /xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
<display-name>Ibei</display-name>
<module>
<ejb>ejb.jar</ejb>
</module>
<module>
<web>
<web-uri>web.war</web-uri>
<context-root></context-root>
</web>
</module>
</application>
我为大学开发了一个应用程序,但由于某些原因,我似乎无法设置它的上下文根。这就是我试图做的:
正在从 glassfish-web.xml 更改上下文根,但它不起作用。服务器识别曾经的 /web/ 路径(网络模块的名称)。这是我的 XML
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"> <glassfish-web-app error-url=""> <web-uri>web</web-uri> <context-root>/</context-root> <class-loader delegate="true"/> <jsp-config> <property name="keepgenerated" value="true"> <description>Keep a copy of the generated servlet class' java code.</description> </property> </jsp-config> </glassfish-web-app>
我尝试使用 deploydir 从 asadmin 设置上下文根。它部署应用程序,但它 运行 它总是到 /web/ 路径。
我尝试检查 domains.xml,但我没有其他应用,我的应用也没有将上下文根设置为 属性。
我在服务器日志中看到的唯一奇怪的事情是:
SEVERE: Application previously deployed is not at its original location any more: file:/C:/Users/Danilo/Documents/NetBeansProjects/ibei/dist/gfdeploy/ibei/ WARNING: Unsupported deployment descriptors element web-uri value web. WARNING: Context path from ServletContext: /web differs from path from bundle: web
最后一个警告真的很奇怪,因为网络应用程序被简单地调用了 "web"。我试图制作 web-uri web,web.war,web_ear 但它从未将 web-uri 识别为正确的:(
我终于找到了解决方案,感谢 JBoss 比 glassfish 和 netbeans 一起更好的文档。问题是由于存在一个由两个模块组成的APP引起的: - EJB - 网页
这两个模块包含在一个耳朵中,由于 netbeans,没有 "application.xml" 所以 glassfish 根本不看 "glassfish-web.xml" 并且使用 asadmin 也无法工作。唯一的解决方案是像这样添加 application.xml(在项目的 "configuration files" 文件夹中):
<application xmlns="http://java.sun.com/xml/ns/j2ee" version="1.4"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com /xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
<display-name>Ibei</display-name>
<module>
<ejb>ejb.jar</ejb>
</module>
<module>
<web>
<web-uri>web.war</web-uri>
<context-root></context-root>
</web>
</module>
</application>