jboss as7 访问ejb通用类
2015-09-15 16:15
302 查看
package com.synnex.ejb.util; import java.util.Properties; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; public class EjbUtil { private static Context initialContext; private static final String PKG_INTERFACES = "org.jboss.ejb.client.naming"; private static Context getInitialContext() throws NamingException{ if(initialContext == null){ Properties prop = new Properties(); prop.put(Context.URL_PKG_PREFIXES, PKG_INTERFACES); initialContext = new InitialContext(prop); } return initialContext; } public static Object lookup(String jndi) throws Exception{ return getInitialContext().lookup(jndi); } private static Object lookup(Class<?> serviceClass, String moduleName, String beanName) throws Exception { final String appName = ""; //ear包的名字,如果没有ear包,那么这个就是空字符串就行 final String distinctName = ""; final String interfaceName = serviceClass.getName(); String jndi = "ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + interfaceName; System.out.println("JNDI: " + jndi); return getInitialContext().lookup(jndi); } public static Object lookupRemoteBizService(Class<?> serviceClass, String moduleName) throws Exception{ String beanName = serviceClass.getSimpleName().replace("Remote", ""); return lookup(serviceClass, moduleName, beanName); } }
调用DEMO
package com.synnex.servlet; import java.io.IOException; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.hua.ejb.LoginBeanRemote; import com.synnex.ejb.util.EjbUtil; /** * Servlet implementation class TestRemoteEJB */ @WebServlet("/TestRemoteEJB") public class TestRemoteEJB extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public TestRemoteEJB() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setHeader("Content-type", "text/html;charset=UTF-8"); //这句话的意思,是告诉servlet用UTF-8转码,而不是用默认的ISO8859 response.setCharacterEncoding("UTF-8"); try { LoginBeanRemote loginBean = (LoginBeanRemote)EjbUtil.lookupRemoteBizService(LoginBeanRemote.class, "MyEJBServer"); String str = loginBean.login("ejb", "123456"); String str1 = loginBean.login("ejb", "qwerty"); request.setCharacterEncoding("utf-8"); System.out.println(str); System.out.println(str1); OutputStream ps = response.getOutputStream(); //这句话的意思,使得放入流的数据是utf8格式 ps.write(str.getBytes("UTF-8")); ps.write("<br>".getBytes("UTF-8")); ps.write(str1.getBytes("UTF-8")); // response.getWriter().write(str); // response.getWriter().write("<br>"); // response.getWriter().write(str1); response.getWriter().flush(); } catch (Exception e) { e.printStackTrace(); } } }
以上代码来自网络
相关文章推荐
- Android开发编码规范导致的内存泄露问题
- 如何快速掌握一门新技术/语言/框架
- Ubuntu安装谷歌中文输入法
- ios 定位 航向检测
- java中String和StringBuider,StringBuffer的区别
- 黑马程序员Android 增强版百分比布局库 为了适配而扩展
- Java ClassLoader 机制
- 记账依据
- iOS- 给App添加内购& 验证购买iOS7新特性
- 字符串匹配的KMP算法
- cassandra paging 分页方法应用
- 黑马程序员Android 百分比布局库(percent-support-lib) 解析与扩展
- 干一行爱一行
- 用html中div元素画横竖直线的方法
- 更改Eclipse下Tomcat的部署目录
- 【Leet Code】148. Sort List---Medium
- C#获取管理员权限
- CoreGraphics QuartzCore CGContextTranslateCTM 用法
- HUD 5256 序列变换
- XMLHttpRequest cannot load"url"Cross origin requests are only supported. send @ jquery-2.1.4.js:8630