我需要获取 OSB 服务器主机名并将其用作限定符以从 DVM 获取值,因为我们使用 ora:getProcessURL() 获取 BPEL 实例 URL。
例子 :
如果我能够将服务器 url 获取为:http ://dev-osb-clientname.com
我将从那里提取“dev”并将“dev”作为限定符发送到 DVM。
我需要获取 OSB 服务器主机名并将其用作限定符以从 DVM 获取值,因为我们使用 ora:getProcessURL() 获取 BPEL 实例 URL。
例子 :
如果我能够将服务器 url 获取为:http ://dev-osb-clientname.com
我将从那里提取“dev”并将“dev”作为限定符发送到 DVM。
我想到了两种明显的方法:
我们也遇到了这个问题,并使用 java 代码和 java callout 进行排序。
您可以考虑以下虚拟片段并采取措施:
package OsbServerName;
import java.io.Serializable;
import java.security.PrivilegedAction;
import java.util.Iterator;
import java.util.Set;
import javax.naming.Context;
import javax.security.auth.Subject;
import weblogic.jndi.Environment;
import weblogic.management.MBeanHome;
import weblogic.management.runtime.ServerRuntimeMBean;
/*
* Get OSB Server or Host Name
*/
public final class OsbServerName implements Serializable {
private static final long serialVersionUID = 4055048819845029320L;
private final static String serverName = findServerNameURL();
public static final void main(String[] arg) {
}
/**
* Return the server name
*
* @return
*/
public static final String getServerNameURL() {
return serverName;
}
/**
* find OSB/WLS server name
*
* @return
*/
private final static String findServerNameURL() {
try {
return findServerRuntimeMBean().getDefaultURL();
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/**
* lookup {@link ServerRuntimeMBean}
*
* @return
* @throws Exception
*/
@SuppressWarnings("deprecation")
private static final ServerRuntimeMBean findServerRuntimeMBean() throws Exception {
// get username and password from service account
Subject subject = weblogic.security.Security.getCurrentSubject();
ServerRuntimeMBean serverRuntimeMBean = (ServerRuntimeMBean) weblogic.security.Security.runAs(subject, new PrivilegedAction<ServerRuntimeMBean>() {
@Override
public ServerRuntimeMBean run() {
try {
weblogic.jndi.Environment env = new Environment();
Context ctx = env.getInitialContext();
// Get the Local MBeanHome
MBeanHome home = (MBeanHome) ctx.lookup("weblogic.management.home.localhome");
Set<?> s = home.getMBeansByType("ServerRuntime");
Iterator<?> i = s.iterator();
return (ServerRuntimeMBean) i.next();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
});
return serverRuntimeMBean;
}
}
在管道中的分配活动中,您可以获取变量:
$入站/ctx:运输/ctx:uri
这肯定会告诉您调用 URL?