webForumDet fria alternativet

The import ... cannot be resolved

Java

5 svar · 790 visningar · startad av Gein

Medlem sedan sep. 20005 700 inlägg
Frågan#1

Här sitter jag och känner mig som en idiot igen.
Har skrivit en sajt som jag paketerat i en war-fil och deployat på min server som kör Tomcat 6. Sajten har fungerat utmärkt på utvecklingsmaskinen men vill inte riktigt snurra på servern.

Loggfilen säger mig:

2008-aug-27 12:25:24 org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet FoosballLogin as unavailable
2008-aug-27 12:25:24 org.apache.catalina.core.StandardWrapperValve invoke
ALLVARLIG: Allocate exception for servlet FoosballLogin
java.lang.Error: Unresolved compilation problems:
The import javax.servlet.http.HttpServletRequest cannot be resolved
The import javax.servlet.http.HttpServletResponse cannot be resolved
The import javax.servlet.http.HttpSession cannot be resolved

The hierarchy of the type FoosballLogin is inconsistent
The type FoosballLogin must implement the inherited abstract method BaseAjaxServlet.getXmlContent(HttpServletRequest, HttpServletResponse)
The method getXmlContent(HttpServletRequest, HttpServletResponse) of type FoosballLogin must override a superclass method
HttpServletRequest cannot be resolved to a type
HttpServletResponse cannot be resolved to a type
HttpSession cannot be resolved to a type

    at nu.knivby.saab.foosball.FoosballLogin.\<init\>(FoosballLogin.java:5)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
    at java.lang.Class.newInstance0(Class.java:350)
    at java.lang.Class.newInstance(Class.java:303)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:806)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
    at java.lang.Thread.run(Thread.java:595)

2008-aug-27 12:26:26 org.apache.catalina.core.StandardWrapperValve invoke
INFO: Servlet FoosballLogin is currently unavailable

Jag har fetmarkerat raderna som jag misstänker ligger till grund för problemet. Vad är det jag har missat egentligen?

Medlem sedan juni 20008 205 inlägg
#2

Verkar som att servlet.jar inte finns i classpathen, vilket i sig är underligt men borde kunna åtgärdas genom att kopiera den till Tomcats libkatalog. Kanske värt att utreda detta vidare, kan ev vara tecken på nåt annat fel.

Medlem sedan sep. 20005 700 inlägg
#3

Någon servlet.jar finns inte på servern. Däremot servlet-api.jar. Och den ligger i lib-katalogen som innehåller dessa jars:

annotations-api.jar     jasper-el.jar           tomcat-dbcp.jar
catalina-ant.jar        jasper-jdt.jar          tomcat-i18n-es.jar
catalina-ha.jar         jasper.jar              tomcat-i18n-fr.jar
catalina-tribes.jar     jsp-api.jar             tomcat-i18n-ja.jar
catalina.jar            servlet-api.jar         tools.jar
el-api.jar              tomcat-coyote.jar
Medlem sedan mars 20007 896 inlägg
#4

Är det inte j2ee.jar som är boven i dramat - och inte servlet-api.jar?

Du kan enkelt testa genom att paketera in j2ee.jar i ditt war-arkiv i mappen WEB-INF/lib om du har tillgång till den på MacBooken.

Medlem sedan sep. 20005 700 inlägg
#5

Inuti servlet-api.jar så finns de klasser som den påstår sig inte kunna hitta så det verkar ju vara rätt jar iaf? Nu har jag inte tillgång till Macbooken så jag kan inte flytta in någon j2ee.jar.

Medlem sedan sep. 20005 700 inlägg
#6

Jag är lite osäker på exakt vart felet låg. Den version av sajten som jag hade deployat var direkt hämtat från mitt SVN-repository. Vad jag nu gjorde var att gå tillbaka till den working copy som jag hade på Macbooken och deployade från den istället och då gick det bättre! Trots att Eclipse hävdar att min working copy inte skiljer sig från den i repositoryt.

Nåväl tack för hälpen! (y)

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)