EJB部署是一个比较容易的问题,本文章简单解析一下JAVA应用之将EJB部署在Jboss下,给大家做个参考吧。如有不当的地方,敬请指正!我使用oracle数据库,所以在jboss下的deploy下得增加oracle数据源配置文件,如下:
oracledb-ds.xml
<datasources>
<local-tx-datasource>
<jndi-name>oracleDSjndi-name>
<connection-url>
jdbc:oracle:thin:@localhost:1521:cmmboss
connection-url>
<driver-class>oracle.jdbc.driver.OracleDriverdriver-class>
<user-name>systemuser-name>
<password>cmmbosspassword>
<metadata>
<type-mapping>oracle10gtype-mapping>
metadata>
local-tx-datasource>
datasources>
注意这个jndi名字和你调用的时候一致,这个实在EJB这个里面的persistence.xml里面一致水泵部署的话。EJB打包的jar可以单独部署于deploy下面。
也可以打包成ear里面
ear的结构:mytestEJBweb.ear
META-INF
--application.xml
testEJBweb.war
testEJB.jar
客户端调用,可以是普通类,也可以是servlet 。我这里以一个servlet距离
在servlet初始化的时候封箱机 处理
public void init() throws ServletException {
Hashtable properties = new Hashtable();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
properties.put(Context.PROVIDER_URL, "jnp://localhost:1100");
这里特别注意的是使用jnp方式访问,其他容器都有自己的访问方式,比如weblogic使用T3,ip如果是夸ip访问注意ip绑定,还有端口号是jnp的端口1100,而不是http端口8080等
properties.put(Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces");
try {
InitialContext ctx = new InitialContext(properties);
ComputerBeanRemote computerBean = (ComputerBeanRemote)ctx.lookup(
"mytestEJBweb/ComputerBean/remote");
这里首先调用的是ear这个资源的jndi路径(我第一次使用了war的资源路径,唉对jndi没有理解,调试了一个晚上,希望锦城阀门大家不要犯我这样的错误),然后再是EJB bean的路径,
this.computerBean = computerBean;
} catch (NamingException e) {
e.printStackTrace();
}
}
也希望能够大家多沟通交流天府工作经验---
阀门相关信息请访问:柱塞式计量泵 不锈钢潜水泵 立式多级泵 立式化工泵
阅读(1507) | 评论(0) | 转发(0) |