博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EJB3.x(JBoss) 第一天
阅读量:7209 次
发布时间:2019-06-29

本文共 2357 字,大约阅读时间需要 7 分钟。

参照itcast的视频教程开始了我的EJB学习,写了第一个Stateless的Remote的Bean

/** *  */package com.cqzhu.ejb3;/** * @author PowerLinux * */public interface HelloWorld {	public String sayHello(String name);}
/** *  */package com.cqzhu.ejb3.impl;import javax.ejb.Remote;import javax.ejb.Stateless;import com.cqzhu.ejb3.HelloWorld;/** * @author PowerLinux * */@Stateless@Remote(HelloWorld.class)public class HelloWorldBean implements HelloWorld {	/* (non-Javadoc)	 * @see com.cqzhu.ejb3.HelloWorld#sayHello(java.lang.String)	 */	@Override	public String sayHello(String name) {		// TODO Auto-generated method stub		return name+"Say Hello,World!";	}}
client:

package com.cqzhu.ejb3.test;import java.util.Properties;import javax.naming.InitialContext;import javax.naming.NamingException;import com.cqzhu.ejb3.HelloWorld;public class EJBClient {	/**	 * @param args	 */	public static void main(String[] args) {		// TODO Auto-generated method stub		Properties props = new Properties();		props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");		props.setProperty("java.naming.provider.url", "localhost:1099");		try {			InitialContext ctx = new InitialContext();			HelloWorld helloworld = (HelloWorld)ctx.lookup("HelloWorldBean/Remote");			System.out.println(helloworld.sayHello("PowerLinux "));		} catch (NamingException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}}
运行:

javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)	at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)	at javax.naming.InitialContext.lookup(InitialContext.java:392)	at com.cqzhu.ejb3.test.EJBClient.main(EJBClient.java:24)
出错原因:

InitialContext ctx = new InitialContext();初始化出错,应为:

InitialContext ctx = new InitialContext(props);

再次运行:

javax.naming.NameNotFoundException: Remote not bound

出粗原因:

HelloWorld helloworld = (HelloWorld)ctx.lookup("HelloWorldBean/Remote");应为:

HelloWorld helloworld = (HelloWorld)ctx.lookup("HelloWorldBean/remote");

运行:

PowerLinuxSay Hello,World!

转载于:https://www.cnblogs.com/Podevor/archive/2012/04/07/2787989.html

你可能感兴趣的文章
第5次作业
查看>>
倒计时
查看>>
JAVA必会算法--选择排序
查看>>
SEO基础问题:13.什么是关键词密度?
查看>>
Ruby gem install mysql 错误解决
查看>>
坑!!!
查看>>
web前端性能优化
查看>>
java基础-数组的折半查找原理
查看>>
挑战JavaScript正则表达式每日两题(2)
查看>>
个人网盘倒下去 企业网盘顶起来
查看>>
Redis的多种启动方式比较!
查看>>
C#读取excel文件数据丢失问题
查看>>
我的编程知识库
查看>>
【Linux实用技术】LFS6.3构建实录
查看>>
js实现页面跳转的几种方式
查看>>
块代码编程---开始使用块代码
查看>>
ASP.NET 发邮件方法
查看>>
分享:Arcadia 0.12.1 发布,Ruby 集成开发环境
查看>>
在ubuntu12.04上使用华为et127 3g上网卡
查看>>
存储类型
查看>>