⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ejbfactory.java

📁 快速FLEX+J2EE开发工具。具体自动生成功能代码功能。
💻 JAVA
字号:
package cn.org.pomer.flex.remoting.factories;

import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;

import cn.org.pomer.flex.remoting.factories.SpringFactory.SpringFactoryInstance;
import flex.messaging.FactoryInstance;
import flex.messaging.FlexFactory;
import flex.messaging.config.ConfigMap;
import flex.messaging.services.ServiceException;

/**
 * source jnp://localhost:1099#HelloServicesImpl/remote;
 * 
 * @author linlinyu
 * 
 */
public class EJBFactory implements FlexFactory {

	public FactoryInstance createFactoryInstance(String id, ConfigMap properties) {

		EjbFactoryInstance instance = new EjbFactoryInstance(this, id,
				properties);
		return instance;
	}

	public Object lookup(FactoryInstance inst) {
		SpringFactoryInstance factoryInstance = (SpringFactoryInstance) inst;
		return factoryInstance.lookup();
	}

	public void initialize(String arg0, ConfigMap properties) {

	}

	static class EjbFactoryInstance extends FactoryInstance {
		private String _url;
		private String _beanName;

		public EjbFactoryInstance(FlexFactory factory, String id,
				ConfigMap properties) {
			super(factory, id, properties);
			String source = properties.getProperty(SOURCE);

			_url = "jnp://localhost:1099";
			int i = source.indexOf("#");
			if (i > 0) {
				_url = source.substring(0, source.indexOf("#"));
			}

			_beanName = source.replaceFirst(_url + '#', "");

			setSource(_beanName);
		}

		public String toString() {
			return "EjbFactory instance for id=" + getId() + " source="
					+ getSource();
		}

		public Object lookup() {
			try {

				Properties p = getEnvironment();

				Context ctx = new InitialContext(p);
				Object obj = ctx.lookup(_beanName);
				return obj;
			} catch (Exception nexc) {
				nexc.printStackTrace();
				ServiceException e = new ServiceException();
				String msg = "EJB service named '" + _beanName
						+ "' does not exist.";
				e.setMessage(msg);
				e.setRootCause(nexc);
				e.setDetails(msg);
				e.setCode("Server.Processing");
				throw e;
			}
		}

		public Properties getEnvironment() {
			Properties p = new Properties();
			p.setProperty("java.naming.factory.initial",
					"org.jnp.interfaces.NamingContextFactory");
			p.setProperty("java.naming.factory.url.pkgs",
					"org.jboss.naming:org.jnp.interfaces");
			p.setProperty("java.naming.provider.url", _url);
			return p;
		}
	}

	public static void main(String[] args) {
		String source = "jnp://bb:1099#HelloServicesImpl/remote";
		String url = "jnp://localhost:1099";
		int i = source.indexOf("#");
		if (i > 0) {
			url = source.substring(0, source.indexOf("#"));
		}
		String beanName = source.replaceFirst(url + '#', "");
		System.out.println(url);
		System.out.println(beanName);

	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -