2013-05-08 3 views
1

J'essaie d'exécuter un cas de test particulièrement simple en utilisant la dernière version promue de Glassfish 4.0. J'ai essayé de placer META-INF/beans.xml dans toutes les permutations possibles, y compris son propre pot dans WEB-INF/libImpossible d'exécuter CDI dans Glassfish 4.0

Le meilleur que je reçois est les erreurs suivantes avec une mise en page + sources répertoriées après:

WARNING: Error while trying to load Bean Class WEB-INF.classes.com.example.cdibug.Test : java.lang.ClassNotFoundException: WEB-INF.classes.com.example.cdibug.Test 
WARNING: Error while trying to load Bean Class WEB-INF.classes.com.example.cdibug.Foo : java.lang.ClassNotFoundException: WEB-INF.classes.com.example.cdibug.Foo 
WARNING: Error while trying to load Bean Class WEB-INF.classes.com.example.cdibug.App : java.lang.ClassNotFoundException: WEB-INF.classes.com.example.cdibug.App 
INFO: Registering the Jersey servlet application, named com.example.cdibug.App, at the servlet mapping /rest/*, with the Application class of the same name. 
INFO: Loading application [cdibug] at [/cdibug] 
INFO: cdibug was successfully deployed in 106 milliseconds. 

Mise en page:

$ jar tvf cdibug.war 
    0 Tue May 07 23:19:48 HST 2013 META-INF/ 
    68 Tue May 07 23:19:48 HST 2013 META-INF/MANIFEST.MF 
    0 Tue May 07 23:14:20 HST 2013 META-INF/beans.xml 
    0 Tue May 07 23:19:32 HST 2013 WEB-INF/ 
    0 Tue May 07 23:18:58 HST 2013 WEB-INF/classes/ 
    0 Tue May 07 22:51:54 HST 2013 WEB-INF/classes/com/ 
    0 Tue May 07 22:51:54 HST 2013 WEB-INF/classes/com/example/ 
    0 Tue May 07 23:09:34 HST 2013 WEB-INF/classes/com/example/cdibug/ 
    174 Tue May 07 22:54:28 HST 2013 WEB-INF/classes/com/example/cdibug/Test.java 
    171 Tue May 07 22:54:04 HST 2013 WEB-INF/classes/com/example/cdibug/App.java 
    309 Tue May 07 22:56:30 HST 2013 WEB-INF/classes/com/example/cdibug/Foo.java 
    398 Tue May 07 23:06:00 HST 2013 WEB-INF/classes/com/example/cdibug/Test.class 
    304 Tue May 07 23:06:00 HST 2013 WEB-INF/classes/com/example/cdibug/App.class 
    634 Tue May 07 23:06:00 HST 2013 WEB-INF/classes/com/example/cdibug/Foo.class 
$ 

Source de beans.xml:

$ cat META-INF/beans.xml # EMPTY 0 bytes 

Source de App.java:

$ cat WEB-INF/classes/com/example/cdibug/App.java 
package com.example.cdibug; 

import javax.ws.rs.ApplicationPath; 
import javax.ws.rs.core.Application; 

@ApplicationPath("/rest") 
public class App extends Application { 
} 

Source de Test.java:

$ cat WEB-INF/classes/com/example/cdibug/Test.java 
package com.example.cdibug; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 

@Path("/test") 
public class Test { 
    @GET 
    public String greet() { 
    return "hello"; 
    } 
} 

Source de Foo.java:

$ cat WEB-INF/classes/com/example/cdibug/Foo.java 
package com.example.cdibug; 

import java.util.logging.Logger; 

import javax.enterprise.context.ApplicationScoped; 

@ApplicationScoped 
public class Foo { 
    public Foo() { 
    System.out.println("stdout: Foo()"); 
    System.err.println("stderr: Foo()"); 
    Logger.getGlobal().info("global_log: Foo()"); 
    } 
} 
+0

Cela ressemble à un bug dans Glassfish, sauf si l'emballage est foiré. – LightGuard

+0

Avez-vous essayé de mettre beans.xml dans WEB-INF? –

+0

Oui, je l'ai fait. beans.xml semble être ignoré s'il est placé dans WEB-INF. Il n'y a absolument aucun message/signe de vie de CDI, et aucun des trois messages dans 'public Foo() {/ * ... * /}' n'est visible. Je l'ai également essayé dans un exemple plus compliqué où j'ai essayé '' @ Inject' un bean d'application-portée et la tentative d'injection a jeté une erreur quand beans.xml était dans WEB-INF – necromancer

Répondre

0

était un bug dans la version fournie avec Eclipse Képler m6. cela fonctionne bien sous 4.0.0-b87

Questions connexes