📄 namingcontextlistener.java
字号:
Host host = (Host) ((Context)container).getParent();
Engine engine = (Engine) host.getParent();
Service service = engine.getService();
name = new ObjectName(domain + ":type=DataSource" +
",path=" + path +
",host=" + host.getName() +
",class=" + resource.getType() +
",name=" + quotedResourceName);
}
return (name);
}
/**
* Set the specified EJBs in the naming context.
*/
public void addEjb(ContextEjb ejb) {
// Create a reference to the EJB.
Reference ref = new EjbRef
(ejb.getType(), ejb.getHome(), ejb.getRemote(), ejb.getLink());
// Adding the additional parameters, if any
Iterator params = ejb.listProperties();
while (params.hasNext()) {
String paramName = (String) params.next();
String paramValue = (String) ejb.getProperty(paramName);
StringRefAddr refAddr = new StringRefAddr(paramName, paramValue);
ref.add(refAddr);
}
try {
createSubcontexts(envCtx, ejb.getName());
envCtx.bind(ejb.getName(), ref);
} catch (NamingException e) {
logger.error(sm.getString("naming.bindFailed", e));
}
}
/**
* Set the specified environment entries in the naming context.
*/
public void addEnvironment(ContextEnvironment env) {
Object value = null;
// Instantiating a new instance of the correct object type, and
// initializing it.
String type = env.getType();
try {
if (type.equals("java.lang.String")) {
value = env.getValue();
} else if (type.equals("java.lang.Byte")) {
if (env.getValue() == null) {
value = new Byte((byte) 0);
} else {
value = Byte.decode(env.getValue());
}
} else if (type.equals("java.lang.Short")) {
if (env.getValue() == null) {
value = new Short((short) 0);
} else {
value = Short.decode(env.getValue());
}
} else if (type.equals("java.lang.Integer")) {
if (env.getValue() == null) {
value = new Integer(0);
} else {
value = Integer.decode(env.getValue());
}
} else if (type.equals("java.lang.Long")) {
if (env.getValue() == null) {
value = new Long(0);
} else {
value = Long.decode(env.getValue());
}
} else if (type.equals("java.lang.Boolean")) {
value = Boolean.valueOf(env.getValue());
} else if (type.equals("java.lang.Double")) {
if (env.getValue() == null) {
value = new Double(0);
} else {
value = Double.valueOf(env.getValue());
}
} else if (type.equals("java.lang.Float")) {
if (env.getValue() == null) {
value = new Float(0);
} else {
value = Float.valueOf(env.getValue());
}
} else if (type.equals("java.lang.Character")) {
if (env.getValue() == null) {
value = new Character((char) 0);
} else {
if (env.getValue().length() == 1) {
value = new Character(env.getValue().charAt(0));
} else {
throw new IllegalArgumentException();
}
}
} else {
logger.error(sm.getString("naming.invalidEnvEntryType", env.getName()));
}
} catch (NumberFormatException e) {
logger.error(sm.getString("naming.invalidEnvEntryValue", env.getName()));
} catch (IllegalArgumentException e) {
logger.error(sm.getString("naming.invalidEnvEntryValue", env.getName()));
}
// Binding the object to the appropriate name
if (value != null) {
try {
if (logger.isDebugEnabled())
logger.debug(" Adding environment entry " + env.getName());
createSubcontexts(envCtx, env.getName());
envCtx.bind(env.getName(), value);
} catch (NamingException e) {
logger.error(sm.getString("naming.invalidEnvEntryValue", e));
}
}
}
/**
* Set the specified local EJBs in the naming context.
*/
public void addLocalEjb(ContextLocalEjb localEjb) {
}
/**
* Set the specified resources in the naming context.
*/
public void addResource(ContextResource resource) {
// Create a reference to the resource.
Reference ref = new ResourceRef
(resource.getType(), resource.getDescription(),
resource.getScope(), resource.getAuth());
// Adding the additional parameters, if any
Iterator params = resource.listProperties();
while (params.hasNext()) {
String paramName = (String) params.next();
String paramValue = (String) resource.getProperty(paramName);
StringRefAddr refAddr = new StringRefAddr(paramName, paramValue);
ref.add(refAddr);
}
try {
if (logger.isDebugEnabled()) {
logger.debug(" Adding resource ref "
+ resource.getName() + " " + ref);
}
createSubcontexts(envCtx, resource.getName());
envCtx.bind(resource.getName(), ref);
} catch (NamingException e) {
logger.error(sm.getString("naming.bindFailed", e));
}
if ("javax.sql.DataSource".equals(ref.getClassName())) {
try {
ObjectName on = createObjectName(resource);
Object actualResource = envCtx.lookup(resource.getName());
Registry.getRegistry(null, null).registerComponent(actualResource, on, null);
objectNames.put(resource.getName(), on);
} catch (Exception e) {
logger.warn(sm.getString("naming.jmxRegistrationFailed", e));
}
}
}
/**
* Set the specified resources in the naming context.
*/
public void addResourceEnvRef(ContextResourceEnvRef resourceEnvRef) {
// Create a reference to the resource env.
Reference ref = new ResourceEnvRef(resourceEnvRef.getType());
// Adding the additional parameters, if any
Iterator params = resourceEnvRef.listProperties();
while (params.hasNext()) {
String paramName = (String) params.next();
String paramValue = (String) resourceEnvRef.getProperty(paramName);
StringRefAddr refAddr = new StringRefAddr(paramName, paramValue);
ref.add(refAddr);
}
try {
if (logger.isDebugEnabled())
log.debug(" Adding resource env ref " + resourceEnvRef.getName());
createSubcontexts(envCtx, resourceEnvRef.getName());
envCtx.bind(resourceEnvRef.getName(), ref);
} catch (NamingException e) {
logger.error(sm.getString("naming.bindFailed", e));
}
}
/**
* Set the specified resource link in the naming context.
*/
public void addResourceLink(ContextResourceLink resourceLink) {
// Create a reference to the resource.
Reference ref = new ResourceLinkRef
(resourceLink.getType(), resourceLink.getGlobal());
javax.naming.Context ctx =
"UserTransaction".equals(resourceLink.getName())
? compCtx : envCtx;
try {
if (logger.isDebugEnabled())
log.debug(" Adding resource link " + resourceLink.getName());
createSubcontexts(envCtx, resourceLink.getName());
ctx.bind(resourceLink.getName(), ref);
} catch (NamingException e) {
logger.error(sm.getString("naming.bindFailed", e));
}
}
/**
* Set the specified EJBs in the naming context.
*/
public void removeEjb(String name) {
try {
envCtx.unbind(name);
} catch (NamingException e) {
logger.error(sm.getString("naming.unbindFailed", e));
}
}
/**
* Set the specified environment entries in the naming context.
*/
public void removeEnvironment(String name) {
try {
envCtx.unbind(name);
} catch (NamingException e) {
logger.error(sm.getString("naming.unbindFailed", e));
}
}
/**
* Set the specified local EJBs in the naming context.
*/
public void removeLocalEjb(String name) {
try {
envCtx.unbind(name);
} catch (NamingException e) {
logger.error(sm.getString("naming.unbindFailed", e));
}
}
/**
* Set the specified resources in the naming context.
*/
public void removeResource(String name) {
try {
envCtx.unbind(name);
} catch (NamingException e) {
logger.error(sm.getString("naming.unbindFailed", e));
}
ObjectName on = (ObjectName) objectNames.get(name);
if (on != null) {
Registry.getRegistry(null, null).unregisterComponent(on);
}
}
/**
* Set the specified resources in the naming context.
*/
public void removeResourceEnvRef(String name) {
try {
envCtx.unbind(name);
} catch (NamingException e) {
logger.error(sm.getString("naming.unbindFailed", e));
}
}
/**
* Set the specified resources in the naming context.
*/
public void removeResourceLink(String name) {
try {
envCtx.unbind(name);
} catch (NamingException e) {
logger.error(sm.getString("naming.unbindFailed", e));
}
}
/**
* Create all intermediate subcontexts.
*/
private void createSubcontexts(javax.naming.Context ctx, String name)
throws NamingException {
javax.naming.Context currentContext = ctx;
StringTokenizer tokenizer = new StringTokenizer(name, "/");
while (tokenizer.hasMoreTokens()) {
String token = tokenizer.nextToken();
if ((!token.equals("")) && (tokenizer.hasMoreTokens())) {
try {
currentContext = currentContext.createSubcontext(token);
} catch (NamingException e) {
// Silent catch. Probably an object is already bound in
// the context.
currentContext =
(javax.naming.Context) currentContext.lookup(token);
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -