[原创]weblogic配置Ejb项目并简单调用_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3777 | 回复: 0   主题: [原创]weblogic配置Ejb项目并简单调用        上一篇   下一篇 
yan.zhao
注册用户
等级:下士
经验:199
发帖:5
精华:0
注册:1970-1-1
状态:离线
发送短消息息给yan.zhao 加好友    发送短消息息给yan.zhao 发消息
发表于: IP:您无权察看 2017-9-1 14:42:43 | [全部帖] [楼主帖] 楼主

1.使用myeclipse新建Java Project项目,结构如图

31.png

2.添加C:\Oracle\Middleware\Oracle_Home\wlserver\server\lib (bea版本不同则目录略有差异)目录下的wlclient.jar, weblogic.jar, api.jar, wls-api.jarclasspath, 这些jar包只是为了让EJB程序编译通过, 在打包ejb的时候不需要它们.

3.新建一个包, 你想咋命名就咋命名, 比如com.mypkg1.mypkg2.ejb, 写一个接口HelloWorld, 它包含一个业务方法:

package com.ejb;

public interface HelloWord {

         public String sayHello(String name); 

}
4.新建一个类HelloWorldBean 实现这个接口, 同时我们通过注解表明这是一个StatelessRemote接口为HelloWorldEJB, 它的jndi name HelloWorldBean(可以随便指定).

package com.ejb;

import javax.ejb.Remote;

import javax.ejb.Stateless;

@Stateless(mappedName = "HelloWordImp") 

@Remote ({HelloWord.class}) 

public class HelloWordImp implements HelloWord{

        @Override

        public String sayHello(String name) {

                 return name + " say hello.";

        }

}

5.myeclipse提供的export工具把这个项目导出为jar, 只选中HelloWord.JavaHelloWordImp.java,其他文件忽略, 导出文件可取名为MyEjb.jar.

32.png

6.http://localhost:7001/console正常部署这个MyEjb.jar并激活它, 目标选择AdminServer,方便后续看查询jndi。

7.选择服务器”->“AdminServer”->“配置”->“一般信息”->“查看JNDI,如图所示: 

8.写测试程序测试结果,新建一个JUnit Test Case测试类,代码如下:

public class EjbTest {

@Test

public void test() throws NamingException {

          Properties properties = new Properties(); 

           properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); 

        properties.setProperty(Context.PROVIDER_URL, "t3://localhost:7001"); 

        properties.setProperty(Context.SECURITY_PRINCIPAL, "weblogic"); 

        properties.setProperty(Context.SECURITY_CREDENTIALS, "zhaoyan1992"); 

        Context context = new InitialContext(properties); 

        HelloWord session = (HelloWord) context.lookup("HelloWordImp#com.ejb.HelloWord"); 

        System.out.println(session.sayHello("test1")); 

}

}

9.结果如下:

10.心得体会

  在学习过程中,仅仅看资料很难懂一些东西,在做这个简单的ejb时就遇到了很多的问题,一个简单的类和方法打包后,然后部署运行就会出现各种异常,去查询了很多资料才知道是缺少包的原因,后面增加了对应的包,再次运行就顺畅多了。而且很多流程也慢慢的懂了。







赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论