我正在试图在同一个Glassfish中使用本地EJB,但不同的耳朵.但Glassfish无法找到本地EJB或无法使用
我读到了这一点: 根据JavaEE教程,@ Local bean的客户端必须在与它访问的企业bean相同的JVM中运行.
在第一只耳朵中,我在jar中有本地接口
@Local
public interface MyLocalBean {
int getNumber(int num3);
}
Run Code Online (Sandbox Code Playgroud)
在另一个jar中,我有实现
@Stateless
@LocalBean
public class MyLocalBeanImpl implements MyLocalBean,Serializable{
public MyLocalBeanImpl() {}
public int getNumber(int num3){......
Run Code Online (Sandbox Code Playgroud)
在第二只耳朵中,在同一条Glassfish中
我在jar里面有本地接口
@Local
public interface MyLocalBean {
int getNumber(int num3);
}
Run Code Online (Sandbox Code Playgroud)
在另一个罐子里,我有消费者
@Stateless
@LocalBean
public class BeanConsumer{
@EJB(name="MyLocalBeanImpl")
private MyLocalBean beanlocal;
Run Code Online (Sandbox Code Playgroud)
使用@EJB和(name ="MyLocalBeanImpl")参数时,错误是:
Cannot resolve reference Local ejb-ref name=MyLocalBeanImpl,Local 3.x
interface =my.package.MyLocalBean,ejb-link=null,lookup=,
mappedName=,jndi-name=,refType=Session|#]
Run Code Online (Sandbox Code Playgroud)
使用@EJB和(name ="my.package.MyLocalBeanImpl")参数,错误是:
Cannot resolve reference Local ejb-ref name=my.package.MyLocalBeanImpl,
Local 3.x interface =my.package.MyLocalBean,ejb-link=null,
lookup=,mappedName=,jndi-name=,refType=Session|#]***
Run Code Online (Sandbox Code Playgroud)
我也尝试使用mappedName
@Stateless(name="MyLocalBeanImpl",mappedName …
Run Code Online (Sandbox Code Playgroud) 使用Spring,我想在Webspehere的上下文中读取一个变量.
在web.xml中定义数据....
<env-entry>
<env-entry-name>varName</env-entry-name>
<env-entry-value>56</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
Run Code Online (Sandbox Code Playgroud)
用java看看
Context envEntryContext = (Context) new InitialContext().lookup("java:comp/env");
String mydata = (String)envEntryContext.lookup(“varName”);
Run Code Online (Sandbox Code Playgroud)
但我想把我的common.xml中的数据拿出来
<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/context/servweb.properties</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders">
<value>true</value>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
也许有类似的东西
<constructor-arg>
<jee:jndi-lookup jndi-name="java:comp/env" default-value="data" />
</constructor-arg>
Run Code Online (Sandbox Code Playgroud)
但是用上下文做同样的事情
Context envEntryContext = (Context) new InitialContext().lookup("java:comp/env");
String mydata = (String)envEntryContext.lookup(“varName”);
Run Code Online (Sandbox Code Playgroud)
也许是这样的:
<constructor-arg>
<jee:jndi-lookup jndi-name="java:comp/env">
<jee:environment>
varName=default
</jee:environment>
</jee:jndi-lookup>
Run Code Online (Sandbox Code Playgroud)
谁知道正确的方法?
提前致谢