on
Post
- Get link
- X
- Other Apps
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>
package dave;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.inject.Qualifier;
@Qualifier
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})
public @interface Config {
}
package dave;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.enterprise.inject.Produces;
import javax.enterprise.inject.spi.InjectionPoint;
public class ConfigurationFactory {
private volatile static Properties configProperties;
public static final String propertiesFilePath = "/application.properties";
public synchronized static Properties getProperties() {
if (configProperties == null) {
configProperties = new Properties();
try {
InputStream is = ConfigurationFactory.class.getResourceAsStream(propertiesFilePath);
System.out.println("Found resource file" + (is != null));
configProperties.load(is);
} catch (IOException ex) {
Logger.getLogger(ConfigurationFactory.class.getName()).log(
Level.SEVERE, null, ex);
throw new RuntimeException(ex);
}
}
return configProperties;
}
public @Produces
@Config
String getConfiguration(InjectionPoint p) {
String configKey = p.getMember().getDeclaringClass().getName() + "."
+ p.getMember().getName();
Properties config = getProperties();
if (config.getProperty(configKey) == null) {
configKey = p.getMember().getDeclaringClass().getSimpleName() + "."
+ p.getMember().getName();
if (config.getProperty(configKey) == null)
configKey = p.getMember().getName();
}
System.err.println("Config key= " + configKey + " value = "
+ config.getProperty(configKey));
return config.getProperty(configKey);
}
public @Produces
@Config
Double getConfigurationDouble(InjectionPoint p) {
String val = getConfiguration(p);
return Double.parseDouble(val);
}
}
package dave;
import javax.ejb.EJB;
import javax.ejb.Stateless;
/**
* Session Bean implementation class TestFacade
*/
@Stateless(mappedName = "TestFacade")
public class TestFacade implements TestFacadeRemote {
@EJB
TestStateless stateless;
public String getServerAddress() {
return stateless.getServerAddress();
}
}
package dave;
import javax.ejb.Remote;
@Remote
public interface TestFacadeRemote {
public String getServerAddress();
}
package dave;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class TestEJBClient {
/**
* @param args
*/
public static void main(String[] args) {
try {
Properties props = new Properties();
props.put(Context.PROVIDER_URL, "t3://localhost:7001");
props.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
Context ctx = new InitialContext(props);
TestFacadeRemote facade = (TestFacadeRemote) ctx.lookup("TestFacade#dave.TestFacadeRemote");
System.out.println(facade.getServerAddress());
} catch (NamingException e) {
e.printStackTrace();
}
}
}
package dave;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.inject.Inject;
/**
* Session Bean implementation class TestStateless
*/
@Stateless(mappedName = "TestStateless")
@LocalBean
public class TestStateless {
@Inject @Config
private String serverAddress;
public String getServerAddress() {
return serverAddress;
}
}
Found resource filetrue
Config key= serverAddress value = dave
package dave;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
@ApplicationScoped
public class TestBean {
@Inject @Config
private String serverAddress;
public String getServerAddress() {
return serverAddress;
}
}
package dave;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.inject.Inject;
/**
* Session Bean implementation class TestFacade
*/
@Stateless(mappedName = "TestFacade")
public class TestFacade implements TestFacadeRemote {
@EJB
TestStateless stateless;
@Inject
TestBean testBean;
public String getServerAddress() {
System.out.println("get value from testbean " + testBean.getServerAddress());
System.out.println("get value from testbean " + testBean.getServerAddress());
System.out.println("get value from stateless " + stateless.getServerAddress());
System.out.println("get value from stateless " + stateless.getServerAddress());
return stateless.getServerAddress();
}
}
Found resource filetrue
Config key= serverAddress value = dave
get value from testbean dave
get value from testbean dave
Config key= serverAddress value = dave
get value from stateless dave
get value from stateless dave
Exception in thread "main" javax.ejb.EJBTransactionRolledbackException: EJB Exception:
at weblogic.ejb.container.internal.BaseLocalObject.handleSystemException(BaseLocalObject.java:453)
at weblogic.ejb.container.internal.BaseLocalObject.getBeanInstance(BaseLocalObject.java:166)
at weblogic.ejb.container.internal.BaseLocalObject.preInvoke(BaseLocalObject.java:103)
at weblogic.ejb.container.internal.BaseLocalObject.__WL_preInvoke(BaseLocalObject.java:67)
at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:20)
at dave.TestStateless_954dmo_NoIntfViewImpl.getServerAddress(Unknown Source)
at dave.TestFacade.getServerAddress(TestFacade.java:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at com.oracle.pitchfork.intercept.MethodInvocationInvocationContext.proceed(MethodInvocationInvocationContext.java:103)
at org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.oracle.pitchfork.intercept.JeeInterceptorInterceptor.invoke(JeeInterceptorInterceptor.java:108)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(Unknown Source)
at $Proxy111.getServerAddress(Unknown Source)
at dave.TestFacade_23kp48_TestFacadeRemoteImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:32)
at dave.TestFacade_23kp48_TestFacadeRemoteImpl.getServerAddress(Unknown Source)
at dave.TestFacade_23kp48_TestFacadeRemoteImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:695)
at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:520)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:516)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
at dave.ConfigurationFactory.getProperties(ConfigurationFactory.java:22)
at dave.ConfigurationFactory.getConfiguration(ConfigurationFactory.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:264)
at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52)
at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:137)
at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:260)
at org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:170)
at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstance(MethodInjectionPoint.java:137)
at org.jboss.weld.bean.ProducerMethod$1.produce(ProducerMethod.java:132)
at org.jboss.weld.bean.AbstractProducerBean.create(AbstractProducerBean.java:299)
at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:61)
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:630)
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:691)
at org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:118)
at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:691)
at org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:700)
at org.jboss.weld.bean.SessionBean$1$1.proceed(SessionBean.java:175)
at com.oracle.injection.provider.weld.WeldInjectionServicesAdapter.aroundInject(WeldInjectionServicesAdapter.java:88)
at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:45)
at org.jboss.weld.bean.SessionBean$1.inject(SessionBean.java:172)
at com.oracle.injection.provider.weld.WeldEjbBeanManager$ExtendedInjectionTarget.inject(WeldEjbBeanManager.java:119)
at com.oracle.injection.provider.weld.WeldEjbBeanManager.newBeanInstance(WeldEjbBeanManager.java:82)
at weblogic.ejb.container.injection.InjectionBasedEjbComponentCreator.getBean(InjectionBasedEjbComponentCreator.java:75)
at weblogic.ejb.container.manager.BaseEJBManager.createNewBeanInstance(BaseEJBManager.java:209)
at weblogic.ejb.container.manager.BaseEJBManager.allocateBean(BaseEJBManager.java:235)
at weblogic.ejb.container.manager.StatelessManager.createBean(StatelessManager.java:293)
at weblogic.ejb.container.pool.StatelessSessionPool.createBean(StatelessSessionPool.java:185)
at weblogic.ejb.container.pool.StatelessSessionPool.getBean(StatelessSessionPool.java:114)
at weblogic.ejb.container.manager.StatelessManager.preInvoke(StatelessManager.java:174)
at weblogic.ejb.container.internal.BaseLocalObject.getBeanInstance(BaseLocalObject.java:146)
... 38 more
Comments
Post a Comment