Intellij IDEA 新建一个EJB工程(三)
之前都是用IDEA启动JBoss服务器,并在启动的同时将EJB项目部署上去。在构建 artifacts 时遇到很多问题,明明是EJB项目却不能用EJB导出,真是奇怪~~
http://www.cnblogs.com/yangyquin/p/5328344.html
package com.ejb;
import javax.ejb.Remote;
@Remote
public interface HelloRemote {
public String sayHello(String world);
}
2)无状态会话Bean,HelloBean:
package com.ejb;
import javax.ejb.Stateless;
@Stateless(name = "HelloEJB")
public class HelloBean implements HelloRemote {
public HelloBean() {
System.out.println("EJBModuleTest01-HelloBean");
}
@Override
public String sayHello(String world) {
return "EJBModuleTest01-sayHello():" + "world";
}
}
3)EJBTestModule01的结构图为:







JBoss后台管理界面:

package com.ejb;
import javax.ejb.Remote;
@Remote
public interface HiRemote {
public String sayHi(String world);
}
2)无状态会话Bean,HiBean:
package com.ejb;
import javax.ejb.Stateless;
@Stateless(name = "HiEJB")
public class HiBean implements HiRemote {
public HiBean() {
System.out.println("EJBModuleTest02-HiBean");
}
@Override
public String sayHi(String world) {
return "EJBModuleTest02-sayHi()" + world;
}
}
3)EJBModuleTest02结构图:











4)查看JBoss后台管理界面:


2)配置文件jboss-ejb-client.properties:
endpoint.name=client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port = 4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connection.default.username=yang
remote.connection.default.password=123456
3)HelloRemote接口:
package com.ejb;
import javax.ejb.Remote;
@Remote
public interface HelloRemote {
public String sayHello(String world);
}
4)Hi接口:
package com.ejb;
import javax.ejb.Remote;
@Remote
public interface HiRemote {
public String sayHi(String world);
}
5)测试类:
import com.ejb.HelloRemote;
import com.ejb.HiRemote;
import org.junit.Before;
import org.junit.Test;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.util.Hashtable;
/**
* Created by gao on 16-3-31.
*/
public class HelloAndHiClient {
final String appName = "";
final String moduleName01 = "EJBModuleTest01_war";
final String moduleName02 = "EJBModuleTest02_war";
final String distinctName = "";
final String beanName01 = "HelloEJB";
final String beanName02 = "HiEJB";
String viewClassName = null;
String namespace = null;
Hashtable jndiProperties = null;
Context context = null;
@Before
public void before() throws NamingException {
jndiProperties = new Hashtable();
jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
context = new InitialContext(jndiProperties);
}
@Test
public void testHelloRemote() throws NamingException {
viewClassName = HelloRemote.class.getName();
namespace = "ejb:" + appName + "/" + moduleName01
+ "/" + distinctName + "/" + beanName01 + "!" + viewClassName;
System.out.println("namespace01:" + namespace);
HelloRemote hello = (HelloRemote) context.lookup(namespace);
System.out.println("HelloRemote:" + hello);
System.out.println(hello.sayHello("EJBModuleTest01_war"));
}
@Test
public void testHiRemote() throws NamingException {
viewClassName = HiRemote.class.getName();
namespace = "ejb:" + appName + "/" + moduleName02
+ "/" + distinctName + "/" + beanName02 + "!" + viewClassName;
System.out.println("namespace02:" + namespace);
HiRemote hi = (HiRemote) context.lookup(namespace);
System.out.println("HiRemote:" + hi);
System.out.println(hi.sayHi("EJBModuleTest02_war"));
}
}
6)运行第二个测试函数的输出结果:

搞掂~~~~
Intellij IDEA 新建一个EJB工程(三)的更多相关文章
- Intellij IDEA新建一个EJB工程(二)
从博文:http://www.cnblogs.com/yangyquin/p/5328344.html 中可以知道如何利用Intellij IDEA建立一个EJB Module,还有新建一个测试Mod ...
- 新建一个express工程,node app无反应
1.问题描述 新建一个express工程,node app以后无反应,浏览器输入localhost:3000,显示如下 2.解决方法 在app.js文件中加入如下代码 app.listen(3000, ...
- Java Learning 001 新建一个Java工程 HelloWorld程序
Java Learning 001 新建一个Java工程 HelloWorld程序 Step 1 . 在Eclipse 软件里,点击: File -> New -> Java Projec ...
- Proteus 8使用 1新建一个Proteus工程
新建一个Proteus工程 下一步 创建部分结束,可以看到两部分-->原理图与源代码. 首先按下F7或从“构建”菜单中选择“构建工程” 之后切换到原理图窗口 按下F12或点击窗口最左下角的“运行 ...
- 使用IntelliJ IDEA新建一个spring boot项目
好家伙, 使用IntelliJ IDEA新建一个spring boot项目 目的很简单,就是网页上出现一个"hello world" 别的暂时不管 首先关于工具IntelliJ I ...
- idea如何新建一个springmvc 工程
java 版本 1.8.0_261 idea 版本2020.1 Tomcat 9 maven 3.6 新建工程 File->new->project 默认会下载springframewo ...
- zynq学习01 新建一个Helloworld工程
1,好早买了块FPGA板,zynq 7010 .终极目标是完成相机图像采集及处理.一个Window C++程序猿才开始学FPGA,一个小菜鸟,准备转行. 2,关于这块板,卖家的官方资料学起来没劲.推荐 ...
- Android中使用自身携带的Junit新建一个测试工程
1.新建立一个Android工程 package com.shellway.junit; public class Service { public int divide(int a,int b){ ...
- Android问题-打开DelphiXE8与DelphiXE10新建一个空工程提示"out of memory"
错误信息: [DCC Error] E2597 d:\XE8\Embarcadero\Studio\16.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-l ...
随机推荐
- 【转载】MySQL查询阻塞语句
select r.trx_id waiting_trx_id, r.trx_mysql_thread_Id waiting_thread, r.trx_query waiting_que ...
- ios开发之数据的持久化存储机制
IOS中数据的持久化保存这块内容,类似于Android中文件的几种常见的存储方式. 对于数据的持久化存储,ios中一般提供了4种不同的机制. 1.属性列表 2.对象归档 3.数据库存储(SQLite3 ...
- 设置NODE_ENV=production
NodeJS - Express 4.0下设置环境变量NODE_ENV=production,并不是修改文件的配置信息,而是通过命令行来实现. 首先在命令行下进入项目的目录,然后先后执行如下命令: s ...
- ubuntu下格式化内存当硬盘使的小实验
内存虚拟硬盘(ramdisk)是指通过软件技术,将物理内存进行分割,将一部分内存通过虚拟技术转变为硬盘以较大幅度提升计算机数据读取速度和保护硬盘. 在ubuntu下的dev下有ram相关的文件,这些文 ...
- 工程移除CocoaPods依赖库
http://zanderzhang.gitcafe.io/2015/09/26/工程移除CocoaPods依赖库/ 点这里--->CocoaPods安装和使用教程 当我们工程安装很多第三方开源 ...
- SignalR发布后不能生成signalr/hubs
问题:代码写完后,在一台服务器上运行没有问题.换到另外一台服务器上,找不到signalr/hubs,显示404错误. SignalR版本:2.0.3 VS版本:2013 服务器:Windows Ser ...
- Hibernate各种主键生成策略与配置详解【附1--<generator class="foreign">】
1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...
- Vim安装ctags插件
问题描述: 系统安装ctags插件 问题解决: (1)下载ctags插件 (2)新下载的ctags文件是一个tar包文件,使用tar -zxcf命令进行解压缩 注: 解压缩之后的 ctags文件,如上 ...
- [转载]GDI+中发生一般性错误
注:第一次写博客,把自己遇到的问题和收集的资料记录在博客上.在开发.NET应用中,使用 System.Drawing.Image.Save 方法而导致“GDI+ 中发生一般性错误”的发生,通常有以下三 ...
- PE文件结构详解(三)PE导出表
上篇文章 PE文件结构详解(二)可执行文件头 的结尾出现了一个大数组,这个数组中的每一项都是一个特定的结构,通过函数获取数组中的项可以用RtlImageDirectoryEntryToData函数,D ...