Witam.
Mam dość dziwny problem. Jakiś czas temu napisałem zbiór klas, ładujący i filtrujący klasy. Wszystko działało bez zarzutu aż do ostatnich zmian w projekcie. Nie modyfikowałem tych klas i nie mam pojęcia gdzie leży problem. Kilkukrotnie sprawdzałem ścieżki ale wszystko wydaje mi się poprawnie. NetBeans też nie informuje o żadnych błędach, wszystko kompiluje się i uruchamia bez zarzutu (i ostrzeżeń). Jednak podczas odpalenia aplikacji dostaję błąd:
javax.servlet.ServletException: No load class: javax.servlet.ServletException: No load class: eu.pozoga.jspf.decoder.HttpContentFormDecoder
Czy ktoś wie czym może być spowodowany ten błąd? Normalnie nie mam już żadnej koncepcji... będę wdzięczny za wszelką pomoc.
[#|2012-01-16T1245.437+0100|SEVERE|glassfish3.0.1|eu.pozoga.jspf.core.FrontController|_ThreadID=31;_ThreadName=Thread-1;|The log message is null.
java.lang.Exception: No load class: eu.pozoga.jspf.decoder.HttpContentFormDecoder
at eu.pozoga.jspf.classes.Classes.findClasses(Classes.java:94)
at eu.pozoga.jspf.classes.Classes.findClasses(Classes.java:89)
at eu.pozoga.jspf.classes.Classes.findClasses(Classes.java:89)
at eu.pozoga.jspf.classes.Classes.findClasses(Classes.java:89)
at eu.pozoga.jspf.classes.Classes.findClasses(Classes.java:89)
at eu.pozoga.jspf.classes.Classes.getClasses(Classes.java:66)
at eu.pozoga.jspf.classes.Classes.getRTTIClasses(Classes.java:36)
at eu.pozoga.jspf.services.MappingService.loadsURLMapping(MappingService.java:51)
at eu.pozoga.jspf.services.MappingService.init(MappingService.java:46)
at eu.pozoga.jspf.core.ServiceUnit.getService(ServiceUnit.java:58)
at eu.pozoga.jspf.core.FrontController.processRequest(FrontController.java:47)
at eu.pozoga.jspf.core.FrontController.doGet(FrontController.java:74)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
at eu.pozoga.jspf.core.MultipartFilter.doFilter(MultipartFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:679)
|#][#|2012-01-16T1245.443+0100|WARNING|glassfish3.0.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=31;_ThreadName=http-thread-pool-8087-(1);|StandardWrapperValve[FrontController]: PWC1406: Servlet.service() for servlet FrontController threw exception
javax.servlet.ServletException: No load class: eu.pozoga.jspf.decoder.HttpContentFormDecoder
at eu.pozoga.jspf.core.FrontController.processRequest(FrontController.java:55)
at eu.pozoga.jspf.core.FrontController.doGet(FrontController.java:74)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
at eu.pozoga.jspf.core.MultipartFilter.doFilter(MultipartFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:679)
|#][#|2012-01-16T1245.443+0100|WARNING|glassfish3.0.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=31;_ThreadName=Thread-1;|StandardWrapperValve[FrontController]: PWC1406: Servlet.service() for servlet FrontController threw exception
javax.servlet.ServletException: No load class: eu.pozoga.jspf.decoder.HttpContentFormDecoder
at eu.pozoga.jspf.core.FrontController.processRequest(FrontController.java:55)
at eu.pozoga.jspf.core.FrontController.doGet(FrontController.java:74)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
at eu.pozoga.jspf.core.MultipartFilter.doFilter(MultipartFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:679)
|#][#|2012-01-16T1245.443+0100|WARNING|glassfish3.0.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=31;_ThreadName=http-thread-pool-8087-(1);|StandardWrapperValve[FrontController]: PWC1406: Servlet.service() for servlet FrontController threw exception
javax.servlet.ServletException: No load class: eu.pozoga.jspf.decoder.HttpContentFormDecoder
at eu.pozoga.jspf.core.FrontController.processRequest(FrontController.java:55)
at eu.pozoga.jspf.core.FrontController.doGet(FrontController.java:74)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
at eu.pozoga.jspf.core.MultipartFilter.doFilter(MultipartFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:679)
|#]
Classes
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package eu.pozoga.jspf.classes;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
/*
* Bild omment:
*
* Klasa powinna reprezenować wszystkie klasy
*/
/**
*
* @author sebastian
*/
public class Classes {
/**
* Return all RTTI object of classes accessible from the context class loader which belong to the given package and subpackages.
*
* @return The classes
*/
private static RTTIClassesCollection classesCollection = null;
public static RTTIClassesCollection getRTTIClasses() throws Throwable {
if (classesCollection == null) {
classesCollection = new RTTIClassesCollection();
for(Class clazz : getClasses(""))
classesCollection.add(clazz);
}
return classesCollection;
}
/**
* Scans all classes accessible from the context class loader which belong to the given package and subpackages.
*
* @param packageName The base package
* @return The classes
* @throws ClassNotFoundException
* @throws IOException
*/
protected static List<Class> getClasses(String packageName)
throws ClassNotFoundException, IOException, Exception {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
assert classLoader != null;
String path = packageName.replace('.', '/');
Enumeration<URL> resources = classLoader.getResources(path);
List<File> dirs = new ArrayList<File>();
while (resources.hasMoreElements()) {
URL resource = resources.nextElement();
dirs.add(new File(resource.getFile()));
}
ArrayList<Class> classes = new ArrayList<Class>();
for (File directory : dirs) {
classes.addAll(findClasses(directory, packageName));
}
return classes;
}
/**
* Recursive method used to find all classes in a given directory and subdirs.
*
* @param directory The base directory
* @param packageName The package name for classes found inside the base directory
* @return The classes
* @throws ClassNotFoundException
*/
private static List<Class> findClasses(File directory, String packageName) throws ClassNotFoundException, Exception {
List<Class> classes = new ArrayList<Class>();
if (!directory.exists()) {
return classes;
}
File[] files = directory.listFiles();
for (File file : files) {
if (file.isDirectory()) {
assert !file.getName().contains(".");
String findPackage = ((packageName!=null && !packageName.equals("")) ? packageName+ "." :packageName) + file.getName();
classes.addAll(findClasses(file, findPackage));
} else if (file.getName().endsWith(".class")) {
try{
classes.add(Class.forName(packageName + '.' + file.getName().substring(0, file.getName().length() - 6)));
}catch(Throwable ex){
throw new Exception("No load class: "+packageName + '.' + file.getName().substring(0, file.getName().length() - 6));
}
}
}
return classes;
}
/*
* Factory
* /
private static Classes instance;
public static Classes getInstance(){
if(instance==null)
instance = new Classes();
return instance;
}*/
}
Decoder
package eu.pozoga.jspf.decoder;
import eu.pozoga.jspf.services.DBConnectorService;
import eu.pozoga.jspf.core.ServiceUnit;
import java.util.Collection;
import eu.pozoga.jspf.model.Content;
import javax.servlet.ServletRequest;
import eu.pozoga.jspf.core.EntityDecoder;
import javax.servlet.http.HttpServletRequest;
/** * * @author sebastian */
public class HttpContentFormDecoder
extends EntityDecoder<Content> {
public void decode(ServletRequest req, String namespace, Content entity, Collection fields) throws Throwable {
staticDecode(req, namespace, entity, fields);
}
@Override
public void decode(ServletRequest req, String namespace, Content entity) throws Throwable {
staticDecode(req, namespace, entity, entity.getIDS());
}
public static void staticDecode(ServletRequest req, String namespace, Content entity, Collection fields) throws Throwable {
//PROPERTIES
//Title
if (fields.contains(Content.TITLE)) {
entity.setTitle( req.getParameter(namespace +Content.TITLE) );
}
//Description
if (fields.contains(Content.DESCRIPTION)) {
entity.setDescription( req.getParameter(namespace +Content.DESCRIPTION) );
}
//Keywords
if (fields.contains(Content.KEYWORDS)) {
entity.setKeywords( req.getParameter(namespace +Content.KEYWORDS) );
}
//Body
if (fields.contains(Content.BODY)) {
entity.setBody( req.getParameter(namespace +Content.BODY) );
}
//ENTITIES
DBConnectorService cs = (DBConnectorService) ServiceUnit.getService((HttpServletRequest) req, null, DBConnectorService.class);
org.hibernate.Session dbSession = cs.getSession();
}
private static final HttpContentFormDecoder instance = new HttpContentFormDecoder();
public static HttpContentFormDecoder getInstance() {
return instance;
}
}