2009-11-09 7 views
3

Son été un moment que je devais faire un peu de Java/JSP ...Java/JSP WEB-INF/classes ne peut pas importer

J'ai une classe java dans WEB-INF/classes/MyClass.java La construction dans Netbeans est réussie et je peux voir MyClass.class dans le dossier classes.

Dans ma page jsp, j'ai

<%@ page import="MyClass" %> 

Tomcat dit que l'importation ne peut pas être résolu ...

J'ai essayé de mettre MyClass dans un paquet (WEB-INF/com/MyClass), puis importez le package dans mon fichier JSP. L'importation ne jette plus une erreur alors, mais je ne peux pas instancier un objet MyClass, dit le type n'est pas résolu ...

Qu'est-ce que je fais mal ici ..?

Toute aide appréciée! :)

Répondre

0

OMG, j'ai trouvé mon erreur ...

Netbeans n'a pas été copier les fichiers dans le dossier lib droit, ma page jsp a été mis à jour, il ressemblait à tous les fichiers ont été copiés, mais en fait MyClass.class n'était pas dans le dossier ...

Merci pour votre aide!

+0

oui. Netbeans conserve les classes dans le dossier de construction. Si vous utilisez netbeans, je vous suggère d'en faire la guerre et de déballer la guerre en utilisant tomcat (au redémarrage, tomcat désactive automatiquement si cette option est définie sur true). Ensuite, vous n'avez pas besoin de vous soucier de copier les fichiers de classe. –

+0

Oui, c'est ce que je fais maintenant, en utilisant une guerre et tout fonctionne parfaitement! Merci à tous pour votre aide – Piero

4
WEB-INF/classes/MyClass.java 

Je suppose que vous utilisez le package par défaut, ce qui n'est pas une bonne pratique du tout. Essayez d'affecter votre classe à un package et effectuez l'importation en fonction de cela.

faire quelque chose comme:

package myPackage; 

class myClass 
{ 
... 
} 

Et après:

<%@ page import="myPackage.myClass" %> 
0

Quel package est MyClass dans? Si le dossier package par défaut, vous pouvez mettre le fichier de classe dans

WEB-INF/classes 

si elle est dans un paquet, puis utilisez la hiérarchie des répertoires de paquet sous les classes

3

fichier .class doit être placé à l'intérieur des cours sous WEB-INF. Ainsi, l'emplacement de MyClass.class doit être WEB-INF/classes/com/(Dans le cas com est un package).

<% 
// Instantiate a MyClass 

com.MyClass obj=new com.MyClass(); 

%> 

OU

<%@ page import="com.MyClass" %> 
<% 
    MyClass obj=new MyClass(); 
%> 
Questions connexes