简体   繁体   English

在Weblogic中通过注释查找

[英]Lookup via Annotation in Weblogic

I am using EJB3.0, Weblogic 11g 我正在使用EJB3.0,Weblogic 11g

I am trying to do simple lookup from servlet to Statelessbean and run there a method. 我正在尝试从servlet到Statelessbean进行简单查找,并在其中运行一种方法。 both under the same EAR. 都在同一个EAR下。 I managed to do it with Jboss. 我设法用Jboss做到了。 but I know that in Weblogic it's little bit diffrent so I channged my code and this is what I am doing and still no success: 但是我知道在Weblogic中这有点不同,所以我更改了代码,这是我正在做的事情,但仍然没有成功:

The interface I have declared: 我声明的接口:

 @Local
 public interface OperatorBlockBeanLocal
 {
    public void testme();

 }

This is the class which implements the Interface: 这是实现接口的类:

@Stateless
@Local{ OperatorBlockBeanLocal.class })


@JNDIName(value = "OperatorBlockBean")


 public class OperatorBlockBean implements OperatorBlockBeanLocal
 {
    public void testme()
 {
    System.out.println("OperatorBlockBean");
 }
 }

And this is the servlet which trying to lookup the bean I decalred before: 这是试图查找我之前贴花的Bean的servlet:

try
    {
        context = new InitialContext();

        operatorBlockBean = (OperatorBlockBeanLocal) context
                .lookup("java:comp/env/OperatorBlockBean");
        operatorBlockBean.testme();
    } catch (NamingException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

Ofcourse that I get NamingException. 当然,我得到了NamingException。 anyone has any idea? 有人有什么主意吗?

thanks, ray. 谢谢,雷。

Try using 尝试使用

@Stateless(mappedName="OperatorBlockBean")
@Local{ OperatorBlockBeanLocal.class }
public class OperatorBlockBean implements OperatorBlockBeanLocal

You can also use EJB injection in your servlet and not do a lookup. 您还可以在servlet中使用EJB注入,而不进行查找。 Here's how: 这是如何做:

@EJB OperatorBlockBeanLocal operatorBlockBean;

The EJB will injected so you don't have to do a lookup. EJB将被注入,因此您不必进行查找。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM