首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • jboss中实现的mbean怎么调用ejb啊 [已结帖,结帖人:moorstone]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • moorstone
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2007-12-28 14:38:59 楼主
    我将调用到的ejb打包成jar,放在*.sar目录下
    MBean的实现
    package mbean.test;
    import org.jboss.system.ServiceMBean;
    public interface HelloWorldServiceMBean extends ServiceMBean {
    String getMessage();
    void setMessage(String message);
    void doSomething();
    }
    package mbean.test;
    import org.jboss.system.ServiceMBeanSupport;
    public class HelloWorldService extends ServiceMBeanSupport
    implements HelloWorldServiceMBean {
    private String message;
    public String getMessage() {
    System.out.println("getMessage() " + message);
    return message;
    }
    public void setMessage(String message) {
    System.out.println("setMessage() " + message);
    this.message = message;
    }
    public void doSomething() {
    System.out.println("做些事情");
    new Test().test();
    }
    public void startService() throws Exception {
    System.out.println("终于看到你啦");
    }
    }
    package mbean.test;
    import java.util.Properties;
    import javax.naming.InitialContext;
    public class Test {
    public void test() {
    InitialContext ctx = null;
    Properties props = new Properties();
    props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
    props.setProperty("java.naming.provider.url", "localhost:1099");
    props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
    try {
    ctx = new InitialContext(props);
    } catch (Exception e) {
    e.printStackTrace();
    }
    try {
    IAA a = (IAA)ctx.lookup("AA/remote"); // 这个地方调用了EJB
    a.doAA();
    } catch (Exception e) {
    e.printStackTrace();
    }
    System.out.println("In 测试代码中");
    }
    }
    然后我又生成了myejb.jar包,里面包含了EJB的实现,如下:
    package mbean.test;
    public interface IAA {
    public void doAA();
    }
    package mbean.test;
    import javax.ejb.Local;
    import javax.ejb.Remote;
    import javax.ejb.Stateless;
    @Stateless
    @Local({IAA.class})
    @Remote({IAA.class})
    public class AA implements IAA {
    public void doAA() {
    System.out.println("Run in AA");
    }
    }
    ejb包放在*.sar中

    如果jboss已经启动,那么直接热部署是没有问题的,但是,如果我重新启动jboss,那么这个mbean启动失败,这个问题怎么解决啊
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sorze
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2007-12-28 20:23:131楼 得分:10
    我顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • JBossWeek
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2007-12-28 22:04:412楼 得分:10
    1、ejb直接打成jar包部署
    2、在deploy目录下创建一个deploy.last的文件夹,然后将mbean的sar包拷贝到该目录里,这样就会在jboss启动时最后部署该mbean服务之后,当然也会在ejb启动以后
    试试吧!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved