我编写了一个针对 Websphere Applicationserver消息主题运行的小型客户端测试程序。 一切正常。 现在,如果我打开管理安全性,我会收到错误。
这就是我正在使用的代码。
public static void main(String[] args)
{
try {
/**
* Lookup connection factory object using jndi
*/
System.out.println("* Looking up CF in jndi...");
Hashtable env = new Hashtable();
env.put(Context.PROVIDER_URL, "iiop://192.168.195.144:2809");
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory");
Context ctx = new InitialContext(env);
TopicConnectionFactory fact=(TopicConnectionFactory)ctx.lookup("jms/Ttestsecure");
TopicConnection connect = fact.createTopicConnection();
TopicSession session=connect.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic=null;
try
{
topic =(Topic) ctx.lookup("jms/Totestsecure");
System.out.println(topic.getTopicName());
}
这是我得到的错误
在jndi中查找CF ... JSAS1480I:Die Sicherheit ist nicht aktiviert,weil die ConfigURL-Eigenschaftendatei nicht definiert ist。 javax.naming.NamingException:获取WsnNameService属性时出错[root异常是org.omg.CORBA.TRANSIENT:初始和转发的IOR无法访问vmcid:IBM次要代码:E07已完成:否] 在com.ibm.ws.naming.util.WsnInitCtxFactory.mergeWsnNSProperties(WsnInitCtxFactory.java:1552) 在com.ibm.ws.naming.util.WsnInitCtxFactory.getRootContextFromServer(WsnInitCtxFactory.java:1042) at com.ibm.ws.naming.util.WsnInitCtxFactory.getRootJndiContext(WsnInitCtxFactory.java:962) at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContextInternal(WsnInitCtxFactory.java:614) at com.ibm.ws.naming.util.WsnInitCtx.getContext(WsnInitCtx.java:128) 在com.ibm.ws.naming.util.WsnInitCtx.getContextIfNull(WsnInitCtx.java:765) 在com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:164) 在com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:179) 在javax.naming.InitialContext.lookup(InitialContext.java:436) 在testmsg.main(testmsg.java:31) 引起:org.omg.CORBA.TRANSIENT:初始和转发的IOR无法访问的vmcid:IBM次要代码:E07已完成:否 在com.ibm.rmi.corba.ClientDelegate.createRequest(ClientDelegate.java:1276) 在com.ibm.CORBA.iiop.ClientDelegate.createRequest(ClientDelegate.java:1457) 在com.ibm.rmi.corba.ClientDelegate.createRequest(ClientDelegate.java:1164) 在com.ibm.CORBA.iiop.ClientDelegate.createRequest(ClientDelegate.java:1423) 在com.ibm.rmi.corba.ClientDelegate.request(ClientDelegate.java:1886) 在com.ibm.CORBA.iiop.ClientDelegate.request(ClientDelegate.java:1379) 在org.omg.CORBA.portable.ObjectImpl._request(ObjectImpl.java:458) 在com.ibm.WsnBootstrap._WsnNameServiceStub.getProperties(_WsnNameServiceStub.java:38) at com.ibm.ws.naming.util.WsnInitCtxFactory.mergeWsnNSProperties(WsnInitCtxFactory.java:1549) ......还有9个 引起:java.net.ConnectException:connect:本地机器上的地址无效,或者端口在远程机器上无效 在java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:381) 在java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:243) 在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:230) 在java.net.SocksSocketImpl.connect(SocksSocketImpl.java:377) 在java.net.Socket.connect(Socket.java:539) 在com.ibm.ws.orbimpl.transport.WSTCPTransportConnection.createSocket(WSTCPTransportConnection.java:313) 在com.ibm.CORBA.transport.TransportConnectionBase.connect(TransportConnectionBase.java:357) 在com.ibm.ws.orbimpl.transport.WSTransport.getConnection(WSTransport.java:436) 在com.ibm.CORBA.transport.TransportBase.getConnection(TransportBase.java:187) 在com.ibm.rmi.iiop.TransportManager.get(TransportManager.java:97) 在com.ibm.rmi.iiop.GIOPImpl.getConnection(GIOPImpl.java:130) 在com.ibm.rmi.iiop.GIOPImpl.locate(GIOPImpl.java:219) 在com.ibm.rmi.corba.ClientDelegate.locate(ClientDelegate.java:1983) 在com.ibm.rmi.corba.ClientDelegate._createRequest(ClientDelegate.java:2008) 在com.ibm.rmi.corba.ClientDelegate.createRequest(ClientDelegate.java:1186) 在com.ibm.rmi.corba.ClientDelegate.createRequest(ClientDelegate.java:1272) ......还有17个 我不是很熟悉websphere Server有没有人建议出了什么问题? 我只打开了行政安全说明的总线安全性。 如果我定期关闭所有作品。
感谢任何提示。
答案 0 :(得分:3)
您获得的异常表示您没有为客户端设置ConfigURL
JSAS1480I:由于ConfigURL属性文件未启用安全性 没有设定。
Explanation The com.ibm.CORBA.ConfigURL property specified in setupCmdLine.bat or on the java command line is not set. Action To enable security, set the com.ibm.CORBA.ConfigURL property to a properties file which exists, such as the sas.client.props file.
你错过了
-Dcom.ibm.CORBA.ConfigURL=file:///home/user1/sas.client.props
您可以阅读信息中心的说明:Running the IBM Thin Client for Enterprise JavaBeans (EJB)