سؤال

وحاولت نشر بريمج لقد خلق لخادم التطبيق 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 هناك أم لا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top