- 浏览: 44232 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
runanli:
事实上许多BI项目都会用到联合主键的。
hibernate联合主键导致创建表失败 -
fflame:
aa87963014 写道我实在是想不到有什么项目/场景需要用 ...
hibernate联合主键导致创建表失败 -
aa87963014:
我实在是想不到有什么项目/场景需要用到联合主键的
hibernate联合主键导致创建表失败 -
runanli:
这些lib在websphere 6.0.2.5的lib目录下确 ...
tomcat 远程调用 websphere remote session bean 一例 -
itanger:
bootstrap.jar ecutils.jar emf.j ...
tomcat 远程调用 websphere remote session bean 一例
今天尝试了一下在TOMCAT下调用WEBSPHERE REMOTE SESSION BEAN的例子,在此共享一下心得。(注意:此处使用的是EJB2.1规范)
1.创建REMOTE STATELESS SESSION BEAN
首先构建ejb.jar包,可以使用任何工具,我这里使用了IBM RSA6.0工具来创建,比较简单,主要代码如下。
Remote Interface, 用于远程调用
Remote session bean 实现
home接口, 用于远端生成业务实现
以上代码,除业务相关接口方法外,都是由工具自动生成的,当然也可以自己编写。
下面就是将生成ejb-jar.xml部署描述符, 这里就不详述了。见代码
然后打包并部署于WEBSPHERE中,并记录下该EJB MODULE的 JNDI。具体过程不详述了。
接下来看TOMCAT端调用EJB的代码。首先有一个很重要的问题要注意,如果要TOMCAT能够调用WEBSPHERE下的资源,则要将以下JAR包放入TOMCAT下的common/lib目录下:
这些jar包位于websphere根目录下的AppServer/lib目录下。
然后创建web project。 这里务必注意,要将之前生成的ejb的jar包引入该web project下。
web.xml如下:
然后创建index.jsp,如下:
之后便可以运行代码了。
注意:此实例是在websphere 6.0.25环境和tomcat 5.5.27环境下测试通过的。其他环境如无法通过,请参照相应文档修改。
1.创建REMOTE STATELESS SESSION BEAN
首先构建ejb.jar包,可以使用任何工具,我这里使用了IBM RSA6.0工具来创建,比较简单,主要代码如下。
Remote Interface, 用于远程调用
package test.rmt.ejb; import java.rmi.RemoteException; /** * Remote interface for Enterprise Bean: TestRemote */ public interface TestRemote extends javax.ejb.EJBObject { /** * 业务接口 * * @return * @throws RemoteException */ public String returnString() throws RemoteException; }
Remote session bean 实现
package test.rmt.ejb; /** * Bean implementation class for Enterprise Bean: TestRemote */ public class TestRemoteBean implements javax.ejb.SessionBean { static final long serialVersionUID = 3206093459760846163L; private javax.ejb.SessionContext mySessionCtx; /** * getSessionContext */ public javax.ejb.SessionContext getSessionContext() { return mySessionCtx; } /** * setSessionContext */ public void setSessionContext(javax.ejb.SessionContext ctx) { mySessionCtx = ctx; } /** * 业务方法,返回一个字符串 * * @return */ public String returnString(){ return "hello! this is a remote stateless session bean!"; } /** * ejbCreate */ public void ejbCreate() throws javax.ejb.CreateException { } /** * ejbActivate */ public void ejbActivate() { } /** * ejbPassivate */ public void ejbPassivate() { } /** * ejbRemove */ public void ejbRemove() { } }
home接口, 用于远端生成业务实现
package test.rmt.ejb; /** * Home interface for Enterprise Bean: TestRemote */ public interface TestRemoteHome extends javax.ejb.EJBHome { /** * Creates a default instance of Session Bean: TestRemote */ public test.rmt.ejb.TestRemote create() throws javax.ejb.CreateException, java.rmi.RemoteException; }
以上代码,除业务相关接口方法外,都是由工具自动生成的,当然也可以自己编写。
下面就是将生成ejb-jar.xml部署描述符, 这里就不详述了。见代码
<?xml version="1.0" encoding="UTF-8"?> <ejb-jar id="ejb-jar_ID" version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"> <display-name>RemoteEJbTestEJB</display-name> <enterprise-beans> <session id="TestRemote"> <ejb-name>TestRemote</ejb-name> <home>test.rmt.ejb.TestRemoteHome</home> <remote>test.rmt.ejb.TestRemote</remote> <ejb-class>test.rmt.ejb.TestRemoteBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> </ejb-jar>
然后打包并部署于WEBSPHERE中,并记录下该EJB MODULE的 JNDI。具体过程不详述了。
接下来看TOMCAT端调用EJB的代码。首先有一个很重要的问题要注意,如果要TOMCAT能够调用WEBSPHERE下的资源,则要将以下JAR包放入TOMCAT下的common/lib目录下:
引用
bootstrap.jar
ecutils.jar
emf.jar
ffdc.jar
idl.jar
iwsorb.jar
j2ee.jar
naming.jar
namingclient.jar
namingserver.jar
ras.jar
tx.jar
wsexception.jar
ecutils.jar
emf.jar
ffdc.jar
idl.jar
iwsorb.jar
j2ee.jar
naming.jar
namingclient.jar
namingserver.jar
ras.jar
tx.jar
wsexception.jar
这些jar包位于websphere根目录下的AppServer/lib目录下。
然后创建web project。 这里务必注意,要将之前生成的ejb的jar包引入该web project下。
web.xml如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>testCallRemoteEJB</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <ejb-ref> <description> </description> <!-- 此处为EJB JNDI --> <ejb-ref-name>ejb/test/rmt/ejb/TestRemoteHome</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <home>test.rmt.ejb.TestRemoteHome</home> <remote>test.rmt.ejb.TestRemote</remote> </ejb-ref> </web-app>
然后创建index.jsp,如下:
<%@page import="javax.rmi.PortableRemoteObject"%> <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030" import="javax.naming.*, java.util.Properties, javax.ejb.*, test.rmt.ejb.*"%> <%! public InitialContext getInitialContext() throws Exception { //EJB容器的地址, websphere 使用了rmi iiop协议来传输EJB, IP地址和端口请使用您自己的配置 String url = "iiop://localhost:2810"; String user = null; String password = null; Properties properties; properties = new Properties(); properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory"); //com.ibm.websphere.naming.WsnInitialContextFactory 是websphere要求的naming 上下文环境,包含在 //之前放入tomcat下的jar包中 properties.put(Context.PROVIDER_URL, url); if (user != null) { properties.put(Context.SECURITY_PRINCIPAL, user); properties.put(Context.SECURITY_CREDENTIALS, password == null ? "" : password); } return new javax.naming.InitialContext(properties); } %> <% Context ctx = getInitialContext(); TestRemoteHome home = (TestRemoteHome)PortableRemoteObject.narrow(ctx.lookup("ejb/test/rmt/ejb/TestRemoteHome"),TestRemoteHome.class); TestRemote remote = home.create(); %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> </head> <body> <%out.println("<h1>" + remote.returnString()+"<h1"); %> </body> </html>
之后便可以运行代码了。
注意:此实例是在websphere 6.0.25环境和tomcat 5.5.27环境下测试通过的。其他环境如无法通过,请参照相应文档修改。
评论
2 楼
runanli
2011-04-25
这些lib在websphere 6.0.2.5的lib目录下确实存在。具体位置为%WAS_HOME%/AppServer/lib。 如果你没有找到的话建议换一个was试试。
1 楼
itanger
2011-04-14
bootstrap.jar
ecutils.jar
emf.jar
ffdc.jar
idl.jar
iwsorb.jar
j2ee.jar
naming.jar
namingclient.jar
namingserver.jar
ras.jar
tx.jar
wsexception.jar
为什么在lib下有的没有呀?
ecutils.jar
emf.jar
ffdc.jar
idl.jar
iwsorb.jar
j2ee.jar
naming.jar
namingclient.jar
namingserver.jar
ras.jar
tx.jar
wsexception.jar
为什么在lib下有的没有呀?
发表评论
-
[转] 最佳日志实践
2015-01-07 22:12 401转自 http://www.bitstech.net/20 ... -
JBPM 6.0 学习笔记 (1)
2014-09-09 21:50 0最近公司项目开始使用BPMS(jBPM) 6.0 开始开发 ... -
[转]让Apache Shiro保护你的应用
2012-11-15 00:25 901原文地址: http://www.blo ... -
[转载]谈谈基于Kerberos的Windows Network Authentication[下篇]
2012-03-13 22:16 695原文地址:http://www.cnblogs.com/ ... -
[转载]谈谈基于Kerberos的Windows Network Authentication - Part II
2012-03-13 22:12 708原文地址:http://www.cnblogs. ... -
[转载]谈谈基于Kerberos的Windows Network Authentication[上篇]
2012-03-13 22:10 680原文地址:http://www.cnblogs.com ... -
[转载]maven deploy 时出现 faild to transfer file错误
2012-01-10 16:32 1759原文地址:http://www.javatang.com/ar ... -
hibernate联合主键导致创建表失败
2011-08-18 00:45 1539最近在做项目时碰到了使用hibernate联合主键的情况。 ... -
maven3 site plugin使用方法变更
2011-07-28 13:08 1498今天在网上查资料时,看到一篇文章。 http: ... -
mysql 性能优化方案
2011-04-25 23:28 0网上有不少mysql 性能 ... -
MySQL性能优化的最佳20+条经验
2011-04-25 23:26 0今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于We ... -
jBPM-JPDL v3.2环境部署——发布到Tomcat + MySQL
2011-04-24 22:20 0安装包及相关软件: 1、 安装JDK与MySQL ... -
[转] Tomcat -- Realm组件
2011-04-24 15:40 0Tomcat服务器配置参考 Realm组件 ... -
为何要分析数据字典(转)
2011-03-02 17:13 0客户现场总是有人抱怨Oracle性能差,而发现大多数问题都是由 ... -
Oracle学习笔记:数据字典(转)
2011-03-02 17:08 0oracle数据字典 ... -
NO merge可解决访问ORACLE数据字典效率低的问题(转)
2011-03-02 17:06 0数据库的数据字典视图的访问一般都比较迅速,因为Orac ... -
Java Annotation入门(转)
2011-03-02 15:15 0版权声明:本文可以自 ... -
Java Annotation手册(转)
2011-03-02 15:13 0版权声明:本文可以自由转载,转载时请务必以超链接形式标明文章原 ... -
Java Annotation 高级应用(转)
2011-03-02 15:12 0... -
高效java异常处理机制
2010-11-12 13:49 0Java 开发人员可以做 ...
相关推荐
该文档是本人从网络上找到的,感觉写的不错,就上传了,和大家分享一下
Extending WebSphere Portal Session Timeout E文
将web应用从Tomcat5移植到Websphere6.doc将web应用从Tomcat5移植到Websphere6.doc
java项目,自己做的项目利用jmx监控weblogic,tomcat,websphere源码
图文并茂,详细描述pinpoint安装部署、监控tomcat、weblogic、webSphere 实际操作,自己编写
在创建数据源后,在java中使用数据源时tomca和was的引用方法是不同的
tomcat、apache、websphere配置
经常发现在开发时在tomcat部署、run都没问题,实施发布到was上的websphere上就冲突报错了。这里总结下两个web容器部署的差异!!
此资源包括java连接websphere_MQ相关jar,包括:com.ibm.mq.headers-7.0.1.jar,dhbcore-0.x.jar ,javax.jms-1.1.jar,com.ibm.mq.axis2-7.0.1.jar。。。。。等jar包,亲测可用,版本
将web应用从Tomcat5移植到Websphere6.pdf
详细描述了WebLogic、WebSphere、JBOSS、Tomcat之间的区别
使用WebSphere MQ管理远程队列管理器.doc
WebSphere开发与管理_源代码
webSphere指南webSphere指南webSphere指南webSphere指南webSphere指南
在websphere8.5 下部署含有CXFwebservice的war包无法正常启动,而相应的war包在tomcat上是可以正常启动的,通过后台的日志分析大致可以定位为相关的cxf类无法找到,其实这些类在项目的lib目录下都是存在的,莫名其妙...
websphere设计
WebSphere
websphere mq是一个非常好的中间件。但是帮助说明做得实在有点过分,居然按照上面的一步一步的做就直接报错,永远调试不通。网上一搜,都是一篇文章四处转载,愤怒!!!各位网民还是先自己动手测试下在转载吧。这篇...
配置WAS缓存后,可在应用发布或者更新消息时人为的进行缓存读取与清除
weblogicTomcatWebsphere调优方法