Проблем със сървлет.
9 отговора
480 прегледа
Проблем със сървлет.
Ха добре заварили!
Имам следния проблем и се надявам някой да ме насочи.
Става въпрос за един мидлет, който е свързван с един сървлет и обменят данни. Сървлетът работи върху Windows 2000, Tomcat 4.1, j2sdk1.4.0_01, Microsoft SQL Server 2000 driver for JDBC
При изготвянето на проекта проверките се се правеха върху XP, Tomcat 5.5, jdk_1.5, j2ee, Microsoft SQL Server 2000 driver for JDBC и работеше добре.
Разликата, е че в първия случай няма инсталиран j2ee, което е препоръка на клиента, като желанието е да се избегне j2ee, като и jsdk да има по възможност само VM. Затова сложих C:\Tomcat 4.1\common\lib\servlet.jar; в classpath и с това избегнах проблема javax.servlet.Http при компилиране, като не показа никаква грешка и реших, че ще сработи, но при изпълнение на сервлета показва следната грешка:
HTTP Status 500 –
java.lang.NullPointerException
at servlet.doGet(servlet.java:61)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
at java.lang.Thread.run(Thread.java:536)
Имам следния проблем и се надявам някой да ме насочи.
Става въпрос за един мидлет, който е свързван с един сървлет и обменят данни. Сървлетът работи върху Windows 2000, Tomcat 4.1, j2sdk1.4.0_01, Microsoft SQL Server 2000 driver for JDBC
При изготвянето на проекта проверките се се правеха върху XP, Tomcat 5.5, jdk_1.5, j2ee, Microsoft SQL Server 2000 driver for JDBC и работеше добре.
Разликата, е че в първия случай няма инсталиран j2ee, което е препоръка на клиента, като желанието е да се избегне j2ee, като и jsdk да има по възможност само VM. Затова сложих C:\Tomcat 4.1\common\lib\servlet.jar; в classpath и с това избегнах проблема javax.servlet.Http при компилиране, като не показа никаква грешка и реших, че ще сработи, но при изпълнение на сервлета показва следната грешка:
HTTP Status 500 –
java.lang.NullPointerException
at servlet.doGet(servlet.java:61)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
at java.lang.Thread.run(Thread.java:536)
Re: Проблем със сървлет.
Така както си го направил няма да стане, естествено. Това че си го компилирал незначи че ще сработи. Без уеб сървър няма как да стане работата. А защо не ползваш Tomcat-a немога да разбера?
България не ме обича, а аз съм ебати пича.
България не ме обича, а аз съм ебати пича.
Re: Проблем със сървлет.
Не използвам Tomcat-a, защото реално незнам как да го направя, би ли ме насочил. Хал хабер съм.
Re: Проблем със сървлет.
[линк]
дерзай не е сложно, но не е и за две изречения. Успех.
България не ме обича, а аз съм ебати пича.
дерзай не е сложно, но не е и за две изречения. Успех.
България не ме обича, а аз съм ебати пича.
Re: Проблем със сървлет.
Абе като ти гледам стак трейса това е ексепшън на Томкат. Я провери на 61 ред какви ги вършиш - там ти е NPE-to.
И бай дъ уей - много тъпо да си кръстиш сервлета - servlet. Дай му някакво по уникално име - MyServlet, MidletDispatcherServlet, DBConnectorServlet ili както там искаш.
И бай дъ уей - много тъпо да си кръстиш сервлета - servlet. Дай му някакво по уникално име - MyServlet, MidletDispatcherServlet, DBConnectorServlet ili както там искаш.
Re: Проблем със сървлет.
Направих следната проба: на ХП -то инсталирах единствено jre1.5.0_06
същата имам инсталирана на Виндовс 2000, преинсталирах драйвера на
JDBC и във webapps имам еднакви фалилове. Всичко е еднакво, всички
папки lib имат еднакви .jar всичко в classpath, path е еднакво на ХП-
то върви и на 2000 е същата грешка.
HTTP 500
java.lang.NullPointerException
servlet.doGet(servlet.java:67)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
Умишлено слагам servlet, като име на servlet, защтото това не е от значение.
На реда 67 е следния код:
statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
същата имам инсталирана на Виндовс 2000, преинсталирах драйвера на
JDBC и във webapps имам еднакви фалилове. Всичко е еднакво, всички
папки lib имат еднакви .jar всичко в classpath, path е еднакво на ХП-
то върви и на 2000 е същата грешка.
HTTP 500
java.lang.NullPointerException
servlet.doGet(servlet.java:67)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
Умишлено слагам servlet, като име на servlet, защтото това не е от значение.
На реда 67 е следния код:
statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
Re: Проблем със сървлет.
Здрасти загради реда по следния начин:
try{
............
}
catch(java.sql.SQLException sqle) {
sqle.printStackTrace();
}
провери какво показва, възможно е конекцията да ти е null.
try{
............
}
catch(java.sql.SQLException sqle) {
sqle.printStackTrace();
}
провери какво показва, възможно е конекцията да ти е null.
Re: Проблем със сървлет.
кода за connection:
try {
connection = DriverManager.getConnection(getConnectionUrl(),userName,password);
} catch(SQLException sqleDM) {
out.print("2;");
}
****************************************
кода за statement:
try {
statement = connection.createStatement();
} catch(SQLException sqle) {
out.print("11;");
}
***********************************
PrintWriter out = response.getWriter();
try {
connection = DriverManager.getConnection(getConnectionUrl(),userName,password);
} catch(SQLException sqleDM) {
out.print("2;");
}
****************************************
кода за statement:
try {
statement = connection.createStatement();
} catch(SQLException sqle) {
out.print("11;");
}
***********************************
PrintWriter out = response.getWriter();