users@jersey.java.net

Re: null pointer in resources scan

From: guilhem legal <guilhem.legal_at_geomatys.fr>
Date: Tue, 29 Jan 2008 16:53:21 +0100

hi again, it was not about the JDK5/6, i don't have the previous error
now ony the resource problem.
it seems netBeans don't like too much jersey 0.5. When i build whith
maven i have no problem, nut with netbeans...
when i create an web project with existing classes, netbeans automaticly
comment all my jersey reference in web.xml
and add a librairy by force call restful Webservice with only
jsr311-api.jar (when i remove it and uncomment the jersey part in
web.xml, all comme back when i restart the IDE)

for the piece of code you write i don't know where put this, who call
the method printPackageUrls(String... packages)

Guilhem Legal


guilhem legal a écrit :
> I still continue to think this is a problem of JDK5/6.
> in fact just before this exception I get an other exception :
>
> GRAVE: "Servlet.service()" pour la servlet ServletAdaptor a généré une
> exception
> java.lang.ClassFormatError: Illegal class modifiers in class
> net/seagis/wcs/package-info: 0x1600
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(Unknown Source)
> at java.security.SecureClassLoader.defineClass(Unknown Source)
> at
> org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1817)
>
> at
> org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
>
> at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
>
> at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
>
> at java.lang.ClassLoader.loadClassInternal(Unknown Source)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Unknown Source)
> at java.lang.Package.getPackageInfo(Unknown Source)
> at java.lang.Package.getAnnotation(Unknown Source)
> at
> com.sun.xml.bind.v2.model.annotation.RuntimeInlineAnnotationReader.getPackageAnnotation(RuntimeInlineAnnotationReader.java:125)
>
>
> which i know is throw when you use a 1.6 compiled app in an
> environement 1.5
>
> i continue to investigate where this come from
> Guilhem Legal
>
> Paul Sandoz a écrit :
>> Hi Guilhem,
>>
>> I don't think it is a JER 5/6 version issue. An exception is being
>> thrown because a URL with a 'file' protocol (scheme) is assumed to be
>> a directory and it is not in this case. Jersey converts this
>> file-based URL to a file then does File.listFiles() which returns
>> null. Definitely a bug.
>>
>> I managed to reproduce the same exception but i am not sure if that
>> is the same problem you are having. What i did was create a file, say
>> called 'junk', in a package, say 'mypackage', then set the package
>> name to search for in the web.xml as follows:
>>
>> <init-param>
>> <param-name>com.sun.ws.rest.config.property.packages</param-name>
>> <param-value>mypackage.junk</param-value>
>> </init-param>
>>
>>
>> For the the package name you used:
>>
>> net.seagis.coverage.wms
>>
>> is 'wms' a file in the package "net.seagis.coverage" ?
> net.seagis.coverage.wms is a package containing two resources classes.
>>
>> If not i am not sure what is going on. Would it be possible to
>> execute the following code somewhere in your web app by including an
>> additional a basic servlet:
>>
>> public static void printPackageUrls(String... packages) throws
>> Exception {
>> ClassLoader cl = Thread.currentThread().getContextClassLoader();
>> for (String p : packages) {
>> String fileP = p.replace('.', '/');
>> Enumeration<URL> urls = cl.getResources(fileP);
>> while (urls.hasMoreElements()) {
>> System.out.println(" URI: " + urls.nextElement());
>> System.out.println("file p: " + fileP);
>> System.out.println(new File(fileP).isDirectory());
>> }
>> }
>> }
>>
>> where you pass the packages you configure in the web.xml ?
>>
>> Thanks,
>> Paul.
>>
>> guilhem legal wrote:
>>> hi!
>>>
>>> I have a little issue with the maven plugin of netbeans, when i
>>> build my project with maven command line all work fine.
>>> But when i build my jersey WS with the netbeans maven plugin and try
>>> to deploy it with NB i get the folowing error :
>>>
>>> javax.servlet.ServletException:
>>> java.lang.reflect.InvocationTargetException
>>>
>>> com.sun.ws.rest.spi.container.servlet.ServletContainer.createResourceConfig(ServletContainer.java:172)
>>>
>>>
>>> com.sun.ws.rest.spi.container.servlet.ServletContainer.init(ServletContainer.java:104)
>>>
>>>
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>
>>>
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
>>>
>>>
>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>>>
>>>
>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
>>>
>>>
>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>>> java.lang.Thread.run(Thread.java:595)
>>>
>>> java.lang.reflect.InvocationTargetException
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>> Method)
>>>
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>>>
>>>
>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>>>
>>> java.lang.reflect.Constructor.newInstance(Constructor.java:494)
>>>
>>> com.sun.ws.rest.spi.container.servlet.ServletContainer.createResourceConfig(ServletContainer.java:168)
>>>
>>>
>>> com.sun.ws.rest.spi.container.servlet.ServletContainer.init(ServletContainer.java:104)
>>>
>>>
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>
>>>
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
>>>
>>>
>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>>>
>>>
>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
>>>
>>>
>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>>> java.lang.Thread.run(Thread.java:595)
>>>
>>> java.lang.NullPointerException
>>>
>>> com.sun.ws.rest.impl.container.config.ResourceClassScanner.indexDir(ResourceClassScanner.java:149)
>>>
>>>
>>> com.sun.ws.rest.impl.container.config.ResourceClassScanner.index(ResourceClassScanner.java:135)
>>>
>>>
>>> com.sun.ws.rest.impl.container.config.ResourceClassScanner.scan(ResourceClassScanner.java:97)
>>>
>>>
>>> com.sun.ws.rest.api.core.PackagesResourceConfig.init(PackagesResourceConfig.java:88)
>>>
>>>
>>> com.sun.ws.rest.api.core.PackagesResourceConfig.<init>(PackagesResourceConfig.java:64)
>>>
>>>
>>> com.sun.ws.rest.api.core.PackagesResourceConfig.<init>(PackagesResourceConfig.java:72)
>>>
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>> Method)
>>>
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>>>
>>>
>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>>>
>>> java.lang.reflect.Constructor.newInstance(Constructor.java:494)
>>>
>>> com.sun.ws.rest.spi.container.servlet.ServletContainer.createResourceConfig(ServletContainer.java:168)
>>>
>>>
>>> com.sun.ws.rest.spi.container.servlet.ServletContainer.init(ServletContainer.java:104)
>>>
>>>
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>
>>>
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
>>>
>>>
>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>>>
>>>
>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
>>>
>>>
>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>>> java.lang.Thread.run(Thread.java:595)
>>>
>>> I see in the log the scan starting :
>>>
>>> INFO: Scanning for root resource classes in the packages:
>>> net.seagis.coverage.wms
>>>
>>> but it never find the resources.
>>>
>>> any idea what this happen? (i'm using tomcat 6 with JDK5, I have
>>> maybe a problem with JDK6/5 compilation)
>>>
>>> Guilhem Legal
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>
>