2015-10-08 6 views
6

यहाँ के साथ एक सामान्य प्रकार कोड का उपयोग कर रहा से पहले वेब अनुप्रयोग शुरू की है (मैं glassfish4 उपयोग कर रहा हूँ) कुछ कार्य करने के लिए घटनाओं को प्रतिबंधित करने पर विचार करें:EJB चेतावनी: वेल्ड-000,411: ... @WithAnnotations या सीमा

import javax.annotation.PostConstruct; 
import javax.annotation.PreDestroy; 
import javax.ejb.Singleton; 
import javax.ejb.Startup; 
import javax.servlet.ServletContextEvent; 
/** 
* 
* @author Ernestas Gruodis 
*/ 
@Startup 
@Singleton 
public class ServerInit { 
    /** 
    * Do some code execution before web application starts up. 
    */ 
    @PostConstruct 
    public void init() { 
     System.out.println("Initialising"); 
    } 
    /** 
    * Do some code execution on web application exit. 
    * @param sce the servlet context event. 
    */ 
    @PreDestroy 
    public void destroy(ServletContextEvent sce) { 

    } 
} 

लेकिन स्टार्टअप के दौरान मैं इन चेतावनियों मिलती है:

वेल्ड-000,411: ऑब्जर्वर विधि [BackedAnnotatedMethod] निजी org.glassfish.jersey.gf.cdi.internal.CdiComponentProvider.processAnnotatedType (@Observes ProcessAnnotatedType) प्राप्त करता है सभी एनोटेटेड प्रकारों के लिए घटनाएं। @WithAnnotations या सीमा के साथ एक सामान्य प्रकार का उपयोग कर घटनाओं को प्रतिबंधित करने पर विचार करें।

वेल्ड-000,411: ऑब्जर्वर विधि [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType (@Observes ProcessAnnotatedType, BeanManager) सभी एनोटेट प्रकार के लिए घटनाओं प्राप्त करता है। @WithAnnotations या सीमा के साथ एक सामान्य प्रकार का उपयोग घटनाओं को प्रतिबंधित करने पर विचार करें।

यहाँ क्या गलत है?

उत्तर

2

इन चेतावनियों ग्लासफिश में निहित CDI स्कैनिंग के कारण होता है। एक beans.xml फ़ाइल है, जहां आप bean-discovery-modenone करने के लिए सेट को परिभाषित करते हुए इस का समाधान करें। उदाहरण के लिए, एक Maven परियोजना में src/main/resources/META-INF/, जहाँ आपके beans.xml फ़ाइल इस प्रकार दिखाई देंगे तहत beans.xml जगह:

<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
     http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd" 
     bean-discovery-mode="none"> 
</beans> 

यह अपने पूरे आवेदन के लिए स्कैनिंग से बंद हो जाएगा तो जहां जरूरत को ठीक से टिप्पणी करने के लिए सुनिश्चित करें। इस मैं https://java.net/jira/browse/GLASSFISH-20483 पढ़ने की सलाह देते अधिक जानकारी के लिए

asadmin set configs.config.server-config.cdi-service.enable-implicit-cdi=false 

: तुम भी asadmin आदेश का उपयोग सभी ऐप्स के लिए स्कैनिंग को अक्षम करने के लिए ग्लासफिश की वैश्विक सेटिंग्स बदल सकते हैं।

संबंधित मुद्दे