?? ejbfactory.java
字號(hào):
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);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -