Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问应用程序时javax.naming.NoInitialContextException_Java_Swing_Jboss - Fatal编程技术网

访问应用程序时javax.naming.NoInitialContextException

访问应用程序时javax.naming.NoInitialContextException,java,swing,jboss,Java,Swing,Jboss,我有一个swing应用程序,它使用运行在服务器中的JBOSS服务器托管。在我的笔记本电脑中,我下载了那个远程应用程序的JNLP,并成功启动了它。我还可以通过点击按钮等与应用程序交互 现在我正在使用一个名为Marathon的API,它是SeleniumWebDriver的包装,只是用于测试swing应用程序。现在,如果我使用这个Marathon API启动JNLP文件,它就可以正常启动了。问题是,当我通过其驱动程序使用此Marathon API单击登录按钮时,我看到以下异常 7286 ER

我有一个swing应用程序,它使用运行在服务器中的
JBOSS
服务器托管。在我的笔记本电脑中,我下载了那个远程应用程序的
JNLP
,并成功启动了它。我还可以通过点击按钮等与应用程序交互

现在我正在使用一个名为
Marathon
的API,它是
SeleniumWebDriver
的包装,只是用于测试swing应用程序。现在,如果我使用这个Marathon API启动JNLP文件,它就可以正常启动了。问题是,当我通过其驱动程序使用此Marathon API单击登录按钮时,我看到以下异常

7286     ERROR  [AWT-EventQueue-1]: Root cause: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
    at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
    at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.lookup(Unknown Source)
在Marathon启动的同一个会话中,如果我手动单击
login
按钮,它工作正常。只有当我尝试使用MarathonAPI以编程方式单击按钮时,问题才会出现

我甚至试过传球

profile.addWSArgument("-J-Djavax.net.ssl.trustStore=C:/Users/xxx/Downloads/ssl.keystore");
profile.addWSArgument("-J-Djava.naming.factory.initial=org.jnp.interfaces.NamingContextFactory");
profile.addWSArgument("-J-Djava.naming.provider.url=10.66.87.0:7001");

什么都不管用。知道发生了什么吗?

设置好上下文后,试试这个

System.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
System.setProperty("java.naming.provider.url", "localhost:<port>");
System.setProperty(“java.naming.factory.initial”、“org.jnp.interfaces.NamingContextFactory”);
setProperty(“java.naming.provider.url”,“localhost:”);
属性是您的项目根目录