PDA

View Full Version : خطا هنگام فراخوانی سرولت



trustmiracle
پنج شنبه 08 بهمن 1388, 21:04 عصر
سلام. من یک سرولت نوشتم و بعد اون رو داخل پوشه classes قرار دادم (از tomcat استفاده می کنم) و فایل html رو هم در پوشه اصلی برنامم قرار دادم. وقتی تو مرورگر اسم برنامه رو میزنم صفحه اول میاد ولی وقتی رو دکمه ای که برای فراخوانی سرولت قرار دادم کلیک می کنم این ارور رو میده :

HTTP Status 404 - /FHWS

type Status report
message /FHWS
description The requested resource (/FHWS) is not available.
Apache Tomcat/6.0.24


من servlet invoker توی فایل web.xml پوشه conf رو هم فعال کردم. ولی برنامه خودم فایلی به نام web.xml ندارد.

manvaputra
پنج شنبه 08 بهمن 1388, 22:43 عصر
آدرس دسترسي به سرولت رو توي فايل web.xml وارد كرديد؟ بايد توي شاخه web-inf باشه.

trustmiracle
یک شنبه 11 بهمن 1388, 19:49 عصر
سلام.
ببخشید شما سریع جواب دادین ولی من پروژه درسی داشتم نتوانستم.
این چیزی که می گید رو داخل یک سایت دیدم ولی دقیقا متوجه نشدم منظورش چی هست
یک فایل با اسم web.xml داخل این پوشه ساختم با این محتوا:



<servlet>
<servlet-name>FHWS</servlet-name>
<servlet-class>learning.FHSW</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>FHSW</servlet-name>
<url-pattern>/FHSW</url-pattern>
</servlet-mapping>

FHWS اسم سرولتم هست و learning اسم پکیجی که این سرولت داخلش قرار داره.
توی فایل html هم این کد رو گذاشتم:



<form method="get" action="/FHWS">
<input type="submit" value="click me">
</form>

ولی باز کار نکرد. نمی دانم دیگه کجاش اشتباه هست.

البته invoker داخل فایل web.xml پوشه conf رو غیر فعال کردم چون وقتی فعال می کردم تو مرور گر هرچی میزدم دیگه ارور هم نمی داد. فقط یک صفحه سفید رو نشون میداد.

trustmiracle
سه شنبه 13 بهمن 1388, 09:05 صبح
من قسمت mapping فایل web.xml رو بصورت زیر تغییر دادم:



<servlet-mapping>
<servlet-name>
FHWS
</servlet-name>
<url-pattern>
/sevlet/*
</url-pattern>
</servlet-mapping>

حالا وقتی سرولت رو فراخوانی می کنم این ارور رو میده:



HTTP Status 500 -

type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Cannot allocate servlet instance for path /learning/servlet/FHWS
org.apache.catalina.servlets.InvokerServlet.serveR equest(InvokerServlet.java:382)
org.apache.catalina.servlets.InvokerServlet.doGet( InvokerServlet.java:136)
javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
root cause
java.lang.NoClassDefFoundError: FHWS (wrong name: learning/FHWS)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknow n Source)
org.apache.catalina.loader.WebappClassLoader.findC lassInternal(WebappClassLoader.java:2331)
org.apache.catalina.loader.WebappClassLoader.findC lass(WebappClassLoader.java:976)
org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1451)
org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1329)
org.apache.catalina.servlets.InvokerServlet.serveR equest(InvokerServlet.java:363)
org.apache.catalina.servlets.InvokerServlet.doGet( InvokerServlet.java:136)
javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.24 logs.
Apache Tomcat/6.0.24

silentrise
چهارشنبه 14 بهمن 1388, 23:23 عصر
سلام
من تو چند تا مرحله روش تولید رو یه سرولت ساده رو توضیح دادم
سوال داشتی در خدمتم

silentrise
چهارشنبه 14 بهمن 1388, 23:25 عصر
اینم قسمت آخرش

trustmiracle
پنج شنبه 15 بهمن 1388, 00:04 صبح
eclipse من j2ee نداشت. دارم پلاگینش رو نصب می کنم. اگر مشکلی پیش اومد مزاحمتون می شم. خیلی لطف کردین.
ممنون

silentrise
پنج شنبه 15 بهمن 1388, 00:50 صبح
خب ما بدونه eclipse j2ee هم کارمون جلو میبریم!
موفق باشی!

trustmiracle
پنج شنبه 15 بهمن 1388, 08:59 صبح
ممنون از دوستانی که جواب دادند مشکل من هم حل شد.
موقع کپی فایل کامپایل شده باید پوشه ای که در اون قرار گرفته هم به وب سرور منتقل بشه که من این رو نمی دانستم.