启用“管理安全性”时如何连接到websphere Application Server 8.5 Message Queue

时间:2012-12-12 13:13:26

标签: jms websphere

我编写了一个针对 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有没有人建议出了什么问题?   我只打开了行政安全说明的总线安全性。   如果我定期关闭所有作品。

感谢任何提示。

1 个答案:

答案 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)