لماذا لم تجد Cometserverservlet من CometserVervlet من Rocket Package؟
-
28-09-2019 - |
سؤال
لديّ تطبيق GWT مشترك يستخدم (يحاول) الصاروخ الصاروخ لتنفيذ cometserverservlet. بعد أن قمت بتسجيل servlet في web.xml و app.gwt.xml ، مثل هذا:
app.gwt.xml:
<servlet path="/server" class="myapp.server.MyCometServlet"/>
web.xml
<servlet>
<servlet-name>myCometServlet</servlet-name>
<servlet-class>myapp.server.MyCometServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myCometServlet</servlet-name>
<url-pattern>/myapp/server</url-pattern>
</servlet-mapping>
من الواضح أن Jetty لا تجد Cometserverservlet الذي يمتد منه MyCometServlet:
تحذير: خطأ في بدء تشغيل معالجات java.lang.noclassdeffounderror
سبب: java.lang.classnotfoundexception: Rocket.Remoting.Server.comet.comtserverservlet
هذا غريب ، لأنني أضفت جرة الصواريخ إلى مشروعي.
هل يمكن لأحد أن يشرح لماذا حدث هذا الخطأ؟
يمكنني أن أفهم ما إذا كنت "سجلت" servlet بطريقة خاطئة أو شيء من هذا ، ولكن في أي نقطة Jetty (أو من؟) تبحث عن cometserverservlet وتفشل في العثور عليها؟
المحلول
ستزيل إضافة الجرة إلى مشروعك (على سبيل المثال في بعض IDE) أخطاء التجميع ، لأنه يمكن العثور على الجرة في وقت الترجمة.
لكن الرصيف يحتاج إلى المكتبة في وقت التشغيل ، والطريقة المعتادة لتوفيرها ، هي وضعها في WEB-INF/lib
مجلد مشروعك.
بالطبع ، تأكد من إعادة نشر التطبيق بعد ذلك (على سبيل المثال ، إذا كنت تستخدم وضع dev ، انقر فوق تحديث في عرض "وضع التطوير").