404 بعد autodeploying بريمج لglassfish
سؤال
وحاولت نشر بريمج لقد خلق لخادم التطبيق Glassfish، ويبدو لي أن ضرب قليلا من حجر عثرة. رمز تنشر على ما يرام إلى المجلد السيارات نشر وبمجرد نشرها هو مكتوب ما يلي إلى ملف السجل:
[#|2009-03-16T13:41:29.303+0000|INFO|sun-appserver2.1|javax.enterprise.system.tools.deployment|_ThreadID=23;_ThreadName=Timer-7;|[AutoDeploy] Selecting file /opt/glassfish-2.1.b60e/domains/imageTransformer/autodeploy/image-transformer.war for autodeployment.|#]
[#|2009-03-16T13:41:29.304+0000|INFO|sun-appserver2.1|javax.enterprise.system.tools.deployment|_ThreadID=23;_ThreadName=Timer-7;|Autoundeploying application :image-transformer|#]
[#|2009-03-16T13:41:29.360+0000|INFO|sun-appserver2.1|javax.enterprise.system.stream.out|_ThreadID=23;_ThreadName=Timer-7;|
classLoader = WebappClassLoader
delegate: true
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
EJBClassLoader :
urlSet = []
doneCalled = false
Parent -> java.net.URLClassLoader@39cf701c
|#]
[#|2009-03-16T13:41:29.361+0000|INFO|sun-appserver2.1|javax.enterprise.system.stream.out|_ThreadID=23;_ThreadName=Timer-7;|
SharedSecrets.getJavaNetAccess()=java.net.URLClassLoader$7@5e7408d9|#]
[#|2009-03-16T13:41:29.487+0000|INFO|sun-appserver2.1|javax.enterprise.system.tools.deployment|_ThreadID=23;_ThreadName=Timer-7;|[AutoDeploy] Successfully autoundeployed : /opt/glassfish-2.1.b60e/domains/imageTransformer/autodeploy/image-transformer.war.|#]
[#|2009-03-16T13:41:29.612+0000|INFO|sun-appserver2.1|javax.enterprise.system.tools.deployment|_ThreadID=23;_ThreadName=Timer-7;|deployed with moduleid = image-transformer|#]
[#|2009-03-16T13:41:29.783+0000|INFO|sun-appserver2.1|javax.enterprise.system.tools.deployment|_ThreadID=23;_ThreadName=Timer-7;|[AutoDeploy] Successfully autodeployed : /opt/glassfish-2.1.b60e/domains/imageTransformer/autodeploy/image-transformer.war.|#]
وحتى عدم وجود أخطاء واضحة، ولكن بعد أن أحصل على 404 من الوصول إلى المسار الذي بريمج يجب أن يكون منضما إلى. هل هناك خطوة أخرى بأنني في حاجة للذهاب من خلال؟
وعلى web.xml في ملف WAR بلدي يبدو مثل هذا:
<web-app>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>my.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
المحلول
وكانت هناك بعض المشاكل مع هذا الانتشار. أولا، هناك حاجة لملف التكوين الثاني ليتم تضمينها في الدليل WEB-INF
، واسمه sun-web.xml
. محتوياته يجب أن تكون شيئا على غرار:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.1 Servlet 2.4//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_4-1.dtd">
<sun-web-app error-url="">
<context-root>/MyServlet </context-root>
</sun-web-app>
ويبدو أن لديها القدرة على الحصول على الكثير أكثر تعقيدا من هذا (انظر <لأ href = "http://docs.sun.com/app/docs/doc/819-2634/6n4tl5kp3؟a=view# gchwx "يختلط =" نوفولو noreferrer "> وثائق ).
وثانيا، واضطررت الى تغيير رأس لملف web.xml
، لذلك قراءة فقا لذلك:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
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/web-app_2_4.xsd"
version="2.4">
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>my.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
ملاحظة رؤوس مشيرا إلى أن هذا هو بريمج المواصفات 2.4.
وأخيرا، يبدو أيضا أنه لا يمكن الوصول إلى هذا بريمج مباشرة. لديك لإلحاقها MyServlet/
(أو اسم معين بريمج) إلى بداية المسار. لذلك للوصول إلى هذا بريمج يتطلب منك زيارة /MyServlet/hello
.
نصائح أخرى
وI تعديل web.xml. أنا ببساطة وأضاف المسار الكامل للدليل التكوين لords.
<display-name>Oracle Application Express Listener</display-name>
<context-param>
<param-name>config.dir</param-name>
<!-- Enter the location where configuration settings should be stored -->
<param-value>/odata/apps/ords/config</param-value>
</context-param>
ويعمل بغض النظر إذا الشمس web.xml هناك أم لا.