很久没研究技术了,由于发布webservice时需要调用发布在另外一台weblogic应用服务器上的ejb,故此花了点时间研究,做试验。
开发环境:
tomcat 4.0.1
weblogic8.0.1
开发工具:
jbuilder10x
具体步骤:
1、首先创建自己的ejb,需要实现remote接口,然后发布到weblogic上
2、创建ejbclient.jar
2.1、在jbuilder中选择new,然后在弹出界面object gallery左边菜单选择build,然后在右边选择archive builder
2.2、选择archive type ,缺省为basic ,需要修改为j2ee application client
2.3、选择create descriptor(s)
2.4、然后点击add files将所需要的文件包含进去(对于ejb只需要home,和remote接口),并勾中include class dependencies
2.5、下一步,进入Determin what to do with library dependencies
2.6、对客户端需要的相关lib ,选择include required classes and known resources
2.7、finish ,完成jar的生成。
3、编写客户端调用程序Test.java 示例如下:
Test.java
package com.test;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import wonders.sb.logic.jgsybx.hdzj.JGSYDwjfhdSessionFacadeHome;
import wonders.sb.logic.jgsybx.hdzj.JGSYDwjfhdSessionFacade;
import wonders.sb.commons.util.MsgObject;
import wonders.sb.dao.single.CorpChkPayJGVO;
public class Test {
public static CorpChkPayJGVO getVO() {
JGSYDwjfhdSessionFacadeHome home = null;
JGSYDwjfhdSessionFacade remote = null;
try {
Properties h = new Properties();
h.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
h.put(Context.PROVIDER_URL,"t3://10.10.10.11:7111");
InitialContext ctx = new InitialContext(h);
home= (JGSYDwjfhdSessionFacadeHome)ctx.lookup("JGSYDwjfhdSessionFacade");
remote = home.create();
MsgObject object=remote.calculate("1001023115","200507");
CorpChkPayJGVO vo=(CorpChkPayJGVO)object.getResult("CorpChkPayJGVO");
System.out.println(vo.getCid());
System.out.println(vo.getDjlx_id());
System.out.println(vo.getDwjn());
System.out.println(vo.getGrjn());
System.out.println(vo.getHzrz_id());
System.out.println(vo.getMemo());
return vo;
}
catch (Exception ex) {
ex.printStackTrace();
}
finally
{
try {
remote.remove();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
return null;
}
}
此程序需要webligic安装目录下的bea/weblogic81/server/lib/wlclient.jar包,发布的时候将其包含进tomcat的classpath
4、最后编写一个jsp测试
<%@ page contentType="text/html; charset=GBK"
import="com.test.*"
%>
<%
CorpChkPayJGVO vo = Test.getVO();
out.println(vo.getCid());
out.println(vo.getDjlx_id());
out.println(vo.getDwjn());
out.println(vo.getGrjn());
out.println(vo.getHzrz_id());
out.println("ssss");
%>