PDA

View Full Version : مشکل در استفاده از Tomcat و Deploy



mohsen_kh1364
سه شنبه 06 مرداد 1388, 18:19 عصر
سلام دوستان
من یکم تازه کارم و اولین پروژه ی JSP رو با NetBeans نوشتم که توش GLassfish هم داشت.
حالا مشکل من اینه که نمی تونم برنامه رو deploy کنم.
من بعد از این که پروژه تموم شد xampp رو نصب کردم و tomcat رو هم روش گذاشتم. اون متغیرهای سراسریش رو هم تعیین کردم اینا ...
حالا با آدرس
http://localhost:8080
صفحه اصلی tomcat میاد. ولی وقتی پروژه ام رو داخل پوشه ی webapps می ذارم نمی فهمه
پیغام 404 می ده. البته اگه یه صفحه ی ساده فقط توی فولدر اصلی باشه مثلاً
webapps\myproject\login.jsp
اون رو باز می کنه ولی کل پروژه رو نه !
خود نت بینز یه فایل war بهم داد که اون رو گذاشتم تو webapps و رفتم از tomcat\bin اون فایل catalina.bat رو اجرا کردم که خودش مثلاً deploy کرد. ولی کار نمی کنه
چرا؟؟؟:عصبانی++:


یه سوال دیگه : بدون استفاده از tomcat می شه با همون glassfish یه کاری کرد که سایت همیشه باز بشه؟ چون خود نت بینز مثل ساعت کار می کنه!:چشمک: (ببخشید اگه سوال احمقانه ای بود. چون من تازه به دنیای jsp وارد شدم)

از همه ی دوستان تشکر می کنم
و اگه کمکم کنین واقعاً ممنون می شم.:لبخندساده:

javaphantom
سه شنبه 06 مرداد 1388, 22:02 عصر
سلام دوستان
من یکم تازه کارم و اولین پروژه ی JSP رو با NetBeans نوشتم که توش GLassfish هم داشت.
حالا مشکل من اینه که نمی تونم برنامه رو deploy کنم.
من بعد از این که پروژه تموم شد xampp رو نصب کردم و tomcat رو هم روش گذاشتم. اون متغیرهای سراسریش رو هم تعیین کردم اینا ...
حالا با آدرس
http://localhost:8080
صفحه اصلی tomcat میاد. ولی وقتی پروژه ام رو داخل پوشه ی webapps می ذارم نمی فهمه
پیغام 404 می ده. البته اگه یه صفحه ی ساده فقط توی فولدر اصلی باشه مثلاً
webapps\myproject\login.jsp
اون رو باز می کنه ولی کل پروژه رو نه !
خود نت بینز یه فایل war بهم داد که اون رو گذاشتم تو webapps و رفتم از tomcat\bin اون فایل catalina.bat رو اجرا کردم که خودش مثلاً deploy کرد. ولی کار نمی کنه
چرا؟؟؟:عصبانی++:


یه سوال دیگه : بدون استفاده از tomcat می شه با همون glassfish یه کاری کرد که سایت همیشه باز بشه؟ چون خود نت بینز مثل ساعت کار می کنه!:چشمک: (ببخشید اگه سوال احمقانه ای بود. چون من تازه به دنیای jsp وارد شدم)

از همه ی دوستان تشکر می کنم
و اگه کمکم کنین واقعاً ممنون می شم.:لبخندساده:

دیدی دوست دارم هر جا می ری project رو اجرا کنی اول برای اونجا netbeans رو نصب کنی بعد چون توی اونم tomcat هم هست دیگه کارت رو راه می اندازه.

صحبت از یک war فایل کردی خوبه باز به هدف داری نزدیک می شیم. درسته اون رو توی همون شاخه webapp کپی کردی بعدشم رفتی توی شاخه bin و اینجا باید اگر در windows هستی یک فایل bat به نام startup یا start یا یک چیزی توی این مایها رو اجراکنی منتهای توی یک consul بعد اگر مشکلی برای پیش نیاد یعنی exceptionی رو نشون نده توی consul اون موقع می تونی تازه بری سراغ browserت و در address بار با فرض اینکه اسم projectت هست myproject این رو بنویسی
http://localhost:8080/myproject
8080 پورتی هست که معمولا به صورت default برای tomcat تعریف شده که قابل عوض کردن هست. موقع نصب و بعد موقع بالا اومدن tomcat بهت می گه داستنش چیه الان.
وقتی tomcat توی consul درست اومد بالا بدون exception در صفحهconsul بهت پیغام deploy شدن myproject رو می ده و وقتی که توی فلدر یا مسیر webapp که می ری می بینی یک فلدر با نام myproject داری و بقولی داخل war فایل رو برات می سازه.
اگر با چیزهایی که گفتم کارت راه افتاد بدون که بزرگترین خیانت رو بهت کردم.
اما بزرگترین حمیات :
بجای اینکه بری netbean نصب کنی و بعد یک چندتا jsp درست کنی که اون بهت کمک می کنه و در آخرهم نفهمیدی چی کار کردی مثل الان بیشنهاد من به شما اینه که بری در مورد معماری وب و بعد معماری j2ee مفاهیم webapplication و ساختار و چگونگی config کردن tomcat قابلیت های آن و بعد مفاهیمی مثل servlet و بعد jsp و قبل از همه html و خیلی چیزهایی که الان یادم نمی یاد و حوصله توضیح دیگه ندارم مطالعه بفرمایید بعد تازه می ری سراغ چی کد.
مهندس اگر j2ee platform هم مثل net. platform بود که دیگه همه چیز خوب و عالی بود

mohsen_kh1364
چهارشنبه 07 مرداد 1388, 01:23 صبح
:لبخندساده:با تشکر از دوست عزیز جناب آقای javaphantom بابت خیانت ها و حمایت هایتان:لبخندساده:

به دلیل این که من خیلی نمی خوام به علمم اضافه بشه و اینم در همین حد می خوام
اجرا کنم بره پی کارش، خیانت شما رو با کمال میل پذیرا می باشم :چشمک:
نت بینزی که من نصب کردم و حتی فک کنم همه ی نت بینز های موجود توشون تامکت نیست (البته شایدم من اشتباه می کنم، که در این صورت طلب بخشایش دارم:خجالت:) و برای دپلوی و اجرا شدن از glassfish استفاده می کنه. حالا این که این glassfish چیه و چیکار می کنه باز در تخصص شماست.:متفکر: اما مشکل کار اینجاست که تا نت بینز رو نصب نکنی، اون رو باز نکنی و پروژه ات رو ران نکنی، نمی تونی سایت رو بالا بیاری (رو همون لوکال هاست)
من می خوام بدون اینکار (یعنی اجرای نت بینز و ران کردن پروژه) بتونم یه ie باز کنم و تو آدرس بارش بزنم
http://localhost:8080/myproject
و برنامه ی قشنگی رو که نوشتم ببینم وو لذت ببرم:گیج: (البته اگه مجبور نبودم اینکارو بکنم نمی خواستم لذت مذت ببرم):عصبانی:

حالا 2 راه پیش رومه :
یا اون فایل war رو توسط تام کت یا جی باس یا هر چیز دیگه deploy کنم (بدون نیاز به نصب نت بینز)
یا خود نت بینز (یا glassfish) رو جوری تنظیم کنم که وقتی ویندوز اومد بالا خود بخود ران بشه و اینا ...

حالا در این مورد ازتون کمک می خواستم. چون مورد اول رو که سعی کردم (یک روز تمام حداقل 8 ساعت مدام روش بودم) ولی نشد. نمی دونم چه مرگشه! شاید تامکته کانفیگ خاصی می خواد که من بلد نیستم. ولی وقتی xamp و tomcat و اینا رو از سایت apachefriends دانلود کردم تمام توضیحاتشو اجرا کردم. مراحل deploy کردن رو هم طبق کتابای core web جولو رفتم. اما نشد که نشد:ناراحت:

ببخشید که یکم طولانی شد.
پیشاپیش از کمک همه ی دوستان تشکر می کنم.:لبخندساده:

javaphantom
چهارشنبه 07 مرداد 1388, 09:26 صبح
:لبخندساده:با تشکر از دوست عزیز جناب آقای javaphantom بابت خیانت ها و حمایت هایتان:لبخندساده:

به دلیل این که من خیلی نمی خوام به علمم اضافه بشه و اینم در همین حد می خوام
اجرا کنم بره پی کارش، خیانت شما رو با کمال میل پذیرا می باشم :چشمک:
نت بینزی که من نصب کردم و حتی فک کنم همه ی نت بینز های موجود توشون تامکت نیست (البته شایدم من اشتباه می کنم، که در این صورت طلب بخشایش دارم:خجالت:) و برای دپلوی و اجرا شدن از glassfish استفاده می کنه. حالا این که این glassfish چیه و چیکار می کنه باز در تخصص شماست.:متفکر: اما مشکل کار اینجاست که تا نت بینز رو نصب نکنی، اون رو باز نکنی و پروژه ات رو ران نکنی، نمی تونی سایت رو بالا بیاری (رو همون لوکال هاست)
من می خوام بدون اینکار (یعنی اجرای نت بینز و ران کردن پروژه) بتونم یه ie باز کنم و تو آدرس بارش بزنم
http://localhost:8080/myproject
و برنامه ی قشنگی رو که نوشتم ببینم وو لذت ببرم:گیج: (البته اگه مجبور نبودم اینکارو بکنم نمی خواستم لذت مذت ببرم):عصبانی:

حالا 2 راه پیش رومه :
یا اون فایل war رو توسط تام کت یا جی باس یا هر چیز دیگه deploy کنم (بدون نیاز به نصب نت بینز)
یا خود نت بینز (یا glassfish) رو جوری تنظیم کنم که وقتی ویندوز اومد بالا خود بخود ران بشه و اینا ...

حالا در این مورد ازتون کمک می خواستم. چون مورد اول رو که سعی کردم (یک روز تمام حداقل 8 ساعت مدام روش بودم) ولی نشد. نمی دونم چه مرگشه! شاید تامکته کانفیگ خاصی می خواد که من بلد نیستم. ولی وقتی xamp و tomcat و اینا رو از سایت apachefriends دانلود کردم تمام توضیحاتشو اجرا کردم. مراحل deploy کردن رو هم طبق کتابای core web جولو رفتم. اما نشد که نشد:ناراحت:

ببخشید که یکم طولانی شد.
پیشاپیش از کمک همه ی دوستان تشکر می کنم.:لبخندساده:

شما وقتی یک war فایل داشته باشید به این معنی هست که در هر servlet containerی مثل tomcat‌ بی اندازیش و در هر کامپیوتری باید کار کنه. ربطی هم به netbeans و یا IDE خاصی نداره.

حالا راه اندازی tomcat و deploy کردن یک war فایل زیاد کاره سختی نیست اصل کار همون داشتن war فایل است. من تنها کاری که می تونم برات بکنم اینه که مرحله به مرحله از کارتو برام عکس بگیری یک جوری zip کنی یا upload کنی تو این سایت تا بهت بگم کجای کارت مشکل داره البته با فرض اینکه شما اون war فایل رو داشته باشید.

نکته: بعد از اینکه tomcat رو روی consul آوردی بالا یعنی اجرا شد حالا چه با war فایل خودت یا بدون اون مهم نیست روی یک browser تست کن ببین صفحه مربوط به tomcat که بصورت default روی اون deploy هست رو داری
فقط کافی توی address بار http://localhost:۸۰۸۰ رو تایپ کنی
با این کار مطمعن می شی که حداقل tomcat بالاست البته اگر در صفحه browsert پیغام خطا نگیری

mohsen_kh1364
چهارشنبه 07 مرداد 1388, 16:29 عصر
ضمن تشکر از پیگیری شما.
همون طوری که تو اولین پست هم عنوان کردم خود صفحه default تام کت میاد بالا.
من اون فایل war رو می ذارم تو پوشه ی webapps و با فایل catalina.bat که تو پوشه ی c:\xampp\tomcat\bin قرار داره اون رو دپلوی می کنم و پوشه های داخل فایل war ساخته می شه. به این صورت یک پوشه محتوی فایل های مربوط به پروژه ام اعم از فایل های JSP و web.xml و فایل های کلاس و فایل های servlet که به class. تبدیل شده اند، در پوشه ی webapps تولید می شه (با همون استانداردی که تام کت داره)
بعد یک بار سرویس appache tomcat رو stop و سپس start می کنم. و بعد می رم تو آدرس بار تایپ می کنم :
http://localhost:8080/myproject
ولی پیغام 404 می ده.

حالا ...
اگه همین پوشه ی myproject رو بذارم تو پوشه ی webapps\ROOT و دوباره آدرس بالا رو بزنم صفحه ی اول سایتم رو میاره که login.jsp هستش. اما وقتی لوگین می کنم چون می خواد به یه سرولت دسترسی داشته باشه که اون سرولت توی یه پکیج هست که قاعداتاً آدرس اون رو فقط web.xml من می دونه، پیداش نمی کنه و می گه مثلاً loginServlet وجود ندارد. یعنی می خواد به صفحه ی
http://localhost:8080/myproject/loginServlet
دسترسی پیدا کنه که نمی تونه. چون این سرولت توی
myproject\web-inf\classes\mypackage\loginServlet
قرار داره.
چون این در واقع یک url-pattern هست که توی web.xml واسه این سرولت ست شده.

نمی دونم تونستم منظورم رو برسونم یا نه.

از این که دارین به این بنده ی حقیر کمک می کنید واقعاً ممنونم.

javaphantom
چهارشنبه 07 مرداد 1388, 23:44 عصر
ضمن تشکر از پیگیری شما.
همون طوری که تو اولین پست هم عنوان کردم خود صفحه default تام کت میاد بالا.
من اون فایل war رو می ذارم تو پوشه ی webapps و با فایل catalina.bat که تو پوشه ی c:\xampp\tomcat\bin قرار داره اون رو دپلوی می کنم و پوشه های داخل فایل war ساخته می شه. به این صورت یک پوشه محتوی فایل های مربوط به پروژه ام اعم از فایل های JSP و web.xml و فایل های کلاس و فایل های servlet که به class. تبدیل شده اند، در پوشه ی webapps تولید می شه (با همون استانداردی که تام کت داره)
بعد یک بار سرویس appache tomcat رو stop و سپس start می کنم. و بعد می رم تو آدرس بار تایپ می کنم :
http://localhost:8080/myproject
ولی پیغام 404 می ده.

حالا ...
اگه همین پوشه ی myproject رو بذارم تو پوشه ی webapps\ROOT و دوباره آدرس بالا رو بزنم صفحه ی اول سایتم رو میاره که login.jsp هستش. اما وقتی لوگین می کنم چون می خواد به یه سرولت دسترسی داشته باشه که اون سرولت توی یه پکیج هست که قاعداتاً آدرس اون رو فقط web.xml من می دونه، پیداش نمی کنه و می گه مثلاً loginServlet وجود ندارد. یعنی می خواد به صفحه ی
http://localhost:8080/myproject/loginServlet
دسترسی پیدا کنه که نمی تونه. چون این سرولت توی
myproject\web-inf\classes\mypackage\loginServlet
قرار داره.
چون این در واقع یک url-pattern هست که توی web.xml واسه این سرولت ست شده.

نمی دونم تونستم منظورم رو برسونم یا نه.

از این که دارین به این بنده ی حقیر کمک می کنید واقعاً ممنونم.


ضمن تشکر از پیگیری شما.
همون طوری که تو اولین پست هم عنوان کردم خود صفحه default تام کت میاد بالا.
من اون فایل war رو می ذارم تو پوشه ی webapps و با فایل catalina.bat که تو پوشه ی c:\xampp\tomcat\bin قرار داره اون رو دپلوی می کنم و پوشه های داخل فایل war ساخته می شه. به این صورت یک پوشه محتوی فایل های مربوط به پروژه ام اعم از فایل های JSP و web.xml و فایل های کلاس و فایل های servlet که به class. تبدیل شده اند، در پوشه ی webapps تولید می شه (با همون استانداردی که تام کت داره)
بعد یک بار سرویس appache tomcat رو stop و سپس start می کنم. و بعد می رم تو آدرس بار تایپ می کنم :
http://localhost:8080/myproject
ولی پیغام 404 می ده.

حالا ...
اگه همین پوشه ی myproject رو بذارم تو پوشه ی webapps\ROOT و دوباره آدرس بالا رو بزنم صفحه ی اول سایتم رو میاره که login.jsp هستش. اما وقتی لوگین می کنم چون می خواد به یه سرولت دسترسی داشته باشه که اون سرولت توی یه پکیج هست که قاعداتاً آدرس اون رو فقط web.xml من می دونه، پیداش نمی کنه و می گه مثلاً loginServlet وجود ندارد. یعنی می خواد به صفحه ی
http://localhost:8080/myproject/loginServlet
دسترسی پیدا کنه که نمی تونه. چون این سرولت توی
myproject\web-inf\classes\mypackage\loginServlet
قرار داره.
چون این در واقع یک url-pattern هست که توی web.xml واسه این سرولت ست شده.

نمی دونم تونستم منظورم رو برسونم یا نه.

از این که دارین به این بنده ی حقیر کمک می کنید واقعاً ممنونم.

با فرض اینکه OS شما windows هست

نکته اول : زین پس بجای استفاده از catalina.bat فقط از startup.bat استفاده می کنیم.

نحوه config کردن tomcat در windows با فرض اینکه آدرس JDK یا همان JAVA_HOME مثلا در مسیر زیر باشد
C:\Program Files\Java\jdk1.6.0_06 = JAVA_HOME

با فرض اینکه مسیر tomcat نصب شده در آدرس زیر باشد
C:\Program Files\apache-tomcat-6.0.18

نحوه نصب
به آدرس C:\Program Files\apache-tomcat-6.0.18\bin رفته و فایل startup.bat را edit کرده
در اوایل این فایل مثلا 23 م آدرس JAVA_HOME را داده به شکل زیر نگاه کرده

@echo off
rem Licensed to the Apache Software Foundation (ASF) under one or more
rem contributor license agreements. See the NOTICE file distributed with
rem this work for additional information regarding copyright ownership.
rem The ASF licenses this file to You under the Apache License, Version 2.0
rem (the "License"); you may not use this file except in compliance with
rem the License. You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.

if "%OS%" == "Windows_NT" setlocal
rem ---------------------------------------------------------------------------
rem Start script for the CATALINA Server
rem
rem $Id: startup.bat 562770 2007-08-04 22:13:58Z markt $
rem ---------------------------------------------------------------------------

set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_06\

rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%
if not "%CATALINA_HOME%" == "" goto gotHome
set CATALINA_HOME=%CURRENT_DIR%
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
cd ..
set CATALINA_HOME=%cd%
cd %CURRENT_DIR%
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHome
و تا آخر بعد فایل edit شده را save کرده و خارج شوید.

مرحله دوم تست tomcat برای بالا آمدن

به سمت منوی start در windows رفته run را انخاب کرده و در آن دستور cmd را نوشته تا یک consul باز شود. در consul به مسیر tomcat رفته در فلدر bin فایل startup.bat را اجرا کرده.
در صوتی که همه چیز خوب پیش بره باید در صفحه consul چنین عباراتی رو ببنید


Jul 27, 2009 10:47:58 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performanc
e in production environments was not found on the java.library.path: C:\Program
Files\Java\jdk1.6.0_06\bin;.;C:\WINDOWS\Sun\Java\b in;C:\WINDOWS\system32;C:\WIND
OWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\Syst em32\Wbem
Jul 27, 2009 10:47:59 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Jul 27, 2009 10:47:59 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1748 ms
Jul 27, 2009 10:47:59 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Jul 27, 2009 10:47:59 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.18
Jul 27, 2009 10:48:00 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Jul 27, 2009 10:48:00 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Jul 27, 2009 10:48:00 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/31 config=null
Jul 27, 2009 10:48:00 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1699 ms


حالا یک قدم رو به جلوتر می ریم وسعی می کنیم یک سری config کردن tomcat رو پیش ببریم.
اگر اطلاعات دقیق تر و بهتر بخواهیم مراجعه به سایت خود http://tomcat.apache.org/
از همه بهتره

اما برای تنظیمات اولیه که سریع هم هست من به دو قسمت از اون اشاره می کنم

یک تغییر port
دو تغییر مسیر deploy کردن

کل داستان در قسمت tomcat home و در فلدر conf هست و فایل server.xml
مراقب باشید که قبل از هر تغییری در این فایل یک backup با نام bak این فایل درست کنید که در صورت تغییر به حالت default بتونید راحت این کار رو انجام بدید

برای تغییر port که بصورت default بر روی 8080 در حال listen هست

server.xml رو edit کنید


<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

کافیست در درون این تگ بجای 8080 هر مقداری که دوست دارید بزارید. در صورتی که 80 کنید دیگر لازم نیست که دائم شماره port بدین. راحت می شین از port نوشتن

برای تغییر مسیر deploy
در همین فایل به دنبال این تگ بگردید
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">

بصورت default برای همه tomcat ها در مسیر داده شده یک فلدر webapps هست که مسیر deploy در اون تعریف شده در صورتی که این مسیر رو مثالا به c:\test تبدیل کنید داستان عوض می شه و در اون address عمل deploy صورت می گیره

mohsen_kh1364
پنج شنبه 08 مرداد 1388, 01:34 صبح
ضمن تشکر از مطلب مفیدتون
اما مشکل حل نشد. کارهایی که گفتید رو انجام دادم اما نمی شه. چون قبلاً هم درست بوده انگار و مشکل از یه جای دیگه است. چون قبلاً هم که فایل startup.bat رو اجرا می کردم (با دابل کلیک) همین عباراتی رو که شما فرمودین رو می نوشت. اون متغیر JAVA_HOME رو هم از این طریق ست کرده بودم :
Control Panel > System > advance > Enviroment Variables > system variables > New
که خوب نباید فرقی با روش شما می داشت که همین طور هم بود.

فقط مسئله ای که هست اینه که من وقتی فایل statup.bat رو اجرا می کنم عملیات دپلوی کردن فایل War انجام می شه ولی سرویس tomcat استارت نمی شه که اون رو باید دستی استارت کنم! نمی دونم مشکل از اینه یا از ورژن تامکتم (با اینکه از سایت خودش فک کنم دانلود کردم) یا اینکه عادیه
شاید هم مشکل از اینه که خودش می ره این ROOT رو اجرا می کنه! اگه بهش بگم بجای ROOT برو myproject رو اجرا کن شاید درست بشه. یه جا خوندم که برای این کار باید دستور زیر رو تو فایل server.xml بنویسی. اما کجاش رو نمی دونم. چون هر جاییش می نوشتم نمی شد! ران نمی کرد سایتمو ! و صفحه دیفالت تامکت هم دیگه نمیومد.


<Context path="/myproject" docBase="myproject"/>


این طوری قاعداتاً باید با نوشتن آدرس
http://localhost:8080/
برناممون بیاد که واسه من نمیاد!!!
ای خدا !!!! این مشکل از کجا می تونه باشه !!!

همین الان یه چیزی تو اون کد دیدم :




e\QTSystem\;C:\Program Files\Common Files\Autodesk Shared\;C:\Program Files\Comm
on Files\Ulead Systems\MPEG;C:\Program Files\Java\jdk1.6.0\bin
Jul 30, 2009 1:57:37 AM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Jul 30, 2009 1:57:37 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 435 ms
Jul 30, 2009 1:57:37 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Jul 30, 2009 1:57:37 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.18
Jul 30, 2009 1:57:37 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive myproject.war
Jul 30, 2009 1:57:37 AM org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
Jul 30, 2009 1:57:37 AM org.apache.catalina.core.StandardContext start
SEVERE: Context [/myproject] startup failed due to previous errors
Jul 30, 2009 1:57:38 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Jul 30, 2009 1:57:38 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8010
Jul 30, 2009 1:57:38 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/23 config=null
Jul 30, 2009 1:57:38 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1509 ms




به خط هایی که bold شون کردم نگاه کنید ! 2 تا error داده ! اینا واسه چی می تونه باشه؟

mohsen_kh1364
پنج شنبه 08 مرداد 1388, 01:50 صبح
این فایل web.xml منه. شاید مشکل از این باشه. به آدرس زیر هم نگاه کنین. طرف عیناً مشکل منو داره. فک کنم مشکل نت بینز باشه. (از بد شانسیم کسی بهش جواب نداده )
http://forums.sun.com/thread.jspa?threadID=5394642






<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.validateXml</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.verifyObjects</param-name>
<param-value>false</param-value>
</context-param>
<filter>
<filter-name>UploadFilter</filter-name>
<filter-class>com.sun.webui.jsf.util.UploadFilter</filter-class>
<init-param>
<description>The maximum allowed upload size in bytes. If this is set to a negative value, there is no maximum. The default value is 1000000.</description>
<param-name>maxSize</param-name>
<param-value>1000000</param-value>
</init-param>
<init-param>
<description>The size (in bytes) of an uploaded file which, if it is exceeded, will cause the file to be written directly to disk instead of stored in memory. Files smaller than or equal to this size will be stored in memory. The default value is 4096.</description>
<param-name>sizeThreshold</param-name>
<param-value>4096</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UploadFilter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<init-param>
<param-name>javax.faces.LIFECYCLE_ID</param-name>
<param-value>com.sun.faces.lifecycle.PARTIAL</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>ExceptionHandlerServlet</servlet-name>
<servlet-class>com.sun.errorhandler.ExceptionHandler</servlet-class>
<init-param>
<param-name>errorHost</param-name>
<param-value>localhost</param-value>
</init-param>
<init-param>
<param-name>errorPort</param-name>
<param-value>24444</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>ThemeServlet</servlet-name>
<servlet-class>com.sun.webui.theme.ThemeServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>holdpointreport.login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ExceptionHandlerServlet</servlet-name>
<url-pattern>/error/ExceptionHandler</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ThemeServlet</servlet-name>
<url-pattern>/theme/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>loginPage.jsp</welcome-file>
</welcome-file-list>
<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<error-page>
<exception-type>java.io.IOException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<error-page>
<exception-type>javax.faces.FacesException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<error-page>
<exception-type>com.sun.rave.web.ui.appbase.ApplicationException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<jsp-config>
<jsp-property-group>
<url-pattern>*.jspf</url-pattern>
<is-xml>true</is-xml>
</jsp-property-group>
</jsp-config>
</web-app>

javaphantom
پنج شنبه 08 مرداد 1388, 19:02 عصر
برای اینکه بخواهیم یک پروژه جدا از مسیر default ی که برای tomcat هست اقدام کنیم

۱. با فرض اینکه پروژه ما با نام myprojcet و در drive c و در سیستم عامل windows باشه

c:\myproject

داخل این فلدر یعنی myproject یک فلدر با نام ROOT همگی با حروف بزرگ شامل لینوکس که براش مهمه چون windows از همه جا راحته طفلک

در داخل فلدر ROOT یک فلدر دیگر با نام WEB-INF گه اینم باید با حروف بزرگ باشه

و در داخل فلدر WEB-INF یک فلدر با نام classes درست کن.

در داخل classes بایت کدها یا همان class فایل های کامپایل شده جاوا رو می زاری اگر در داخل کد packageی باشد مثلا mypackage در داخل این فلدر classes باید فلدر دیگری با نام mypackage به همراه class فایل های مربوط به آن package باشد.

در کنار فلدر classes باید فایل web.xml باشد که داخل اون رو شرح می دم.

در بیرون از فلدر web-inf و در کنار اون html فایلها و jsp فایلها و دیگر فلدرها می تونن باشند.

نکته هر چیزی که بیرون از فلدر web-inf باشد بصورت مستقیم از طریق browser با دادن آدرس و نام او فایل قابل دسترسی هست. یعنی اگر شما یک jsp فایل بانام my.jsp داشته باشید خیلی راحت کلاینت از طریق آدرس بار browser می تونه به اون دسترسی داشته باشد و با زدن نام و آدرس یعنی http:/www.myproject.my.jsp به اون page دسترسی داشته باشه.

خوب حال بریم سراغ تام کت ببینم که چه جوری باید آدرس default رو عوض کنیم
در فایل server.xml که در فلدر conf تام کت هست
توی همون تگی که قبلا گفتم به این صورت عمل می کنیم

<Host name="localhsot" debug="0"
appBase="c:\myproject" unpackWARs="false"
autoDeploy="false">


شاید مشکل شما در همین جا باشه. اگر او war فایل خودتون به این شکلی که گفتم بچینین شاید کارتون درست بشه نشد من مجبورم دیگه خودم یک sample براتون upload کنم

mohsen_kh1364
جمعه 09 مرداد 1388, 11:06 صبح
از پیگیری هاتون خیلی خیلی متشکرم.
ساختار فایل هام و اون web-inf و اینام درستن همشون. اون سری که گفتین appbase رو عوض کن این کارو کردم اما به جای آدرس http:/www.myproject.my.jsp نوشته بودم http://localhost:8080/myproject که کار نکرد. حالا اینم امتحان می کنم. متشکر. classpath رو هم دیدم تو تاپیکای دیگه گفته بودین ستش کن که اونم الان می کنم (ست می کنم البته)
ولی فک کنم مشکل اصلی از web.xml باشه. احتمالاً اون اولاش یه چیزایی باید بنویسیم که tomcat باهاش کار کنه! شایدم نه ! اون لینکه رو دیدین؟

http://forums.sun.com/thread.jspa?threadID=5394642 (http://forums.sun.com/thread.jspa?threadID=5394642)

دقیقاً مشکل منو داشت. (بازم می گم فک کنم از نت بینز باشه: یعنی ساختار فایل web.xml لش!)

javaphantom
جمعه 09 مرداد 1388, 12:11 عصر
از پیگیری هاتون خیلی خیلی متشکرم.
ساختار فایل هام و اون web-inf و اینام درستن همشون. اون سری که گفتین appbase رو عوض کن این کارو کردم اما به جای آدرس http:/www.myproject.my.jsp نوشته بودم http://localhost:8080/myproject که کار نکرد. حالا اینم امتحان می کنم. متشکر. classpath رو هم دیدم تو تاپیکای دیگه گفته بودین ستش کن که اونم الان می کنم (ست می کنم البته)
ولی فک کنم مشکل اصلی از web.xml باشه. احتمالاً اون اولاش یه چیزایی باید بنویسیم که tomcat باهاش کار کنه! شایدم نه ! اون لینکه رو دیدین؟

http://forums.sun.com/thread.jspa?threadID=5394642 (http://forums.sun.com/thread.jspa?threadID=5394642)

دقیقاً مشکل منو داشت. (بازم می گم فک کنم از نت بینز باشه: یعنی ساختار فایل web.xml لش!)
محتویات web.xml رو اینجا یک کپی ازش بزار ببینم دایی

mohsen_kh1364
جمعه 09 مرداد 1388, 18:47 عصر
محتویات فایل web.xml رو تو صفحه قبل پست شماره 8 گذاشتم.
فک کنم اون ارور SEVER: error listenerStart که بازم تو صفحه ی قبل پست 7 گذاشتم مشکل اصلی باشه
تو یه فروم خارجی هم دیدم که یکی گفته بود تو فولدر WEB-INF ببین فایل context.xml هست یا نه! که واسه من نبود. (البته نگفته بود اگه نبود چیکار کن)

mohsen_kh1364
جمعه 09 مرداد 1388, 19:17 عصر
ضمن تشکر مجدد ازشما دوست عزیز که این چند روز رو وقت گذاشتی و من رو همراهی کردی و پیشنهاد های خوبی هم دادی.
من بالاخره فهمیدم مشکل از کجا بود!
مشکل ساپورت نکردن آخرین ورژن تامکت از آخرین ورژن نت بینز بود! (البته به نظر من)
من رو همون مشکل ذکر شده تو پست بالایی تو فرومای خارجی گشتم و یه جایی به این جمله رسیدم که گفته بود برو محتویات lib رو نگاه کن. من رفتم دیدم تو پروژه ام تو فولدر WEB-INF یه فولدر lib هست که توش فایلهای مربوط به JSF هست که من ازشون استفاده نکرده بودم اما چون پیشبینی کرده بودم که ممکنه استفاده کنم، پروژه رو در حالت JSF ایجاد کرده بودم.
اون فولدر lib رو کلاً پاک کردم و رفتم startup.bat رو اجرا کردم و ایندفه به جای ارور Error listenerStart
ارور Error Filter یا یه همچین چیزایی داد. که فهمیدم اونم از فایل web.xml می تونه باشه.
رفتم دیدم بله ! دو تا فیلتر اضافه شده که ازش استفاده هم نمی شه. بنا بر این اونا رو از فایل web.xml پاک کردم و دوباره رفتم startup.bat رو اجرا کردم و این دفعه با کمال تعجب و شگفتی دیدم که بدون ارور استارت شد. و در نهایت هم که تو بروزر آدرس رو زدم و بالاخره از پروژه ی قشنگم در محیط تامکت لذت بردم!


این بود شرح ما وقع!

بازم ممنون!

حالا یه سوال دیگه! اگه این تامکت رو تو یه کامپیوتر شبکه نصب کنم، بدون اینکه کامپیوتر لوگین بشه می شه از کامپیوتر های دیگه ی شبکه بهش دسترسی پیدا کرد یا نه؟ (جواب مثبته دیگه؟)

javaphantom
جمعه 09 مرداد 1388, 20:26 عصر
ضمن تشکر مجدد ازشما دوست عزیز که این چند روز رو وقت گذاشتی و من رو همراهی کردی و پیشنهاد های خوبی هم دادی.
من بالاخره فهمیدم مشکل از کجا بود!
مشکل ساپورت نکردن آخرین ورژن تامکت از آخرین ورژن نت بینز بود! (البته به نظر من)
من رو همون مشکل ذکر شده تو پست بالایی تو فرومای خارجی گشتم و یه جایی به این جمله رسیدم که گفته بود برو محتویات lib رو نگاه کن. من رفتم دیدم تو پروژه ام تو فولدر WEB-INF یه فولدر lib هست که توش فایلهای مربوط به JSF هست که من ازشون استفاده نکرده بودم اما چون پیشبینی کرده بودم که ممکنه استفاده کنم، پروژه رو در حالت JSF ایجاد کرده بودم.
اون فولدر lib رو کلاً پاک کردم و رفتم startup.bat رو اجرا کردم و ایندفه به جای ارور Error listenerStart
ارور Error Filter یا یه همچین چیزایی داد. که فهمیدم اونم از فایل web.xml می تونه باشه.
رفتم دیدم بله ! دو تا فیلتر اضافه شده که ازش استفاده هم نمی شه. بنا بر این اونا رو از فایل web.xml پاک کردم و دوباره رفتم startup.bat رو اجرا کردم و این دفعه با کمال تعجب و شگفتی دیدم که بدون ارور استارت شد. و در نهایت هم که تو بروزر آدرس رو زدم و بالاخره از پروژه ی قشنگم در محیط تامکت لذت بردم!


این بود شرح ما وقع!

بازم ممنون!

حالا یه سوال دیگه! اگه این تامکت رو تو یه کامپیوتر شبکه نصب کنم، بدون اینکه کامپیوتر لوگین بشه می شه از کامپیوتر های دیگه ی شبکه بهش دسترسی پیدا کرد یا نه؟ (جواب مثبته دیگه؟)

منظور سوالتو نفهمیدم
تام کت یک servlet container هست که دائم داره روی یک پورت listen می کن از هر جا می تونی صداش کنی کافی بجای استفاده از localhost آدرس IP اون کامپوتری که تام کت روش نصب بدی تا بتونی از اون سرویس بگیری