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 ...
随机推荐
- WPF-控件-ControlTemplate生成的控件
<Window x:Class="由ControlTemplate生成的控件.MainWindow" xmlns="http://schemas.microsoft ...
- 进程和cpu绑定
#include<stdlib.h> #include<stdio.h> #include<sys/types.h> #include<sys/sysinfo ...
- 与MySQL交互(felixge/node-mysql)
目录 简介和安装 测试MySQL 认识一下Connection Options MYSQL CURD 插入 更新 查询 删除 Nodejs 调用带out参数的存储过程,并得到out参数返回值 结束数据 ...
- 深入理解用mysql_fetch_row()以数组的形式返回查询结果
同mysql_result()一样,mysql_fetch_row()也可以用来获取查询结果集,其区别在于函数的返回值不是一个字符串,而是一个数组.函数定义如下. 复制代码 代码如下: array m ...
- 包装设计模式的实现以改进BufferedReader中的readLine方法为例
实现与目标对象相同的接口 BufferedReader 定义一个变量记住目标对象 定义一个构造器接收被增强对象 覆盖需要增强的方法 对于不想增强的方法,直接调用目标对象的方法. package ...
- Zabbix实现告警分级
Zabbix中trigger的severity的值定义了trigger的不同严重程度,其中severity默认的6个值为 Not classified, Information, Warning, A ...
- Sublime text 取消记住上一次打开的,这功能太墨迹了!
比较恨,这sublime text的配置全部都是配置文件. 选择菜单:Preferences->Settings-User,增加配置项 //热退出,其实实现一种模拟没有退出的状态,当程序再次启动 ...
- ASP.NET MVC 4 插件化架构简单实现-实例篇
先回顾一下上篇决定的做法: 1.定义程序集搜索目录(临时目录). 2.将要使用的各种程序集(插件)复制到该目录. 3.加载临时目录中的程序集. 4.定义模板引擎的搜索路径. 5.在模板引擎的查找页面方 ...
- Spring3+hibernate4+struts2整合的 过程中发生如下错误
严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderLis ...
- uva 10900
题意一直没看懂~~~~不过看懂了之后还是感觉挺好的 #include<cstdio> #include<cstring> #include<algorithm> # ...