我是Java Web Start的新手。我有一個以CORBA作爲中間件的示例Client-Server應用程序。前端(客戶端)在Java中,後端(服務器)在C++中。該應用程序運行並使用jar和批處理文件進行測試。現在我想在Java Web Start和JNLP中部署該應用程序。 我已經通過創建一個JNLP文件並簽名了罐子來配置它。Java Web Start控制檯消失
現在衆所周知,任何CORBA應用程序都需要一個域文件(.cfg)和一些org.omg類來通過RPC與服務器進行通信。
我堅持如何在我的JNLP中指定這些域文件名,路徑,CORBA類等。即使如此,我也無法確切知道什麼配置會使Java Web Start中的CORBA應用程序正常工作,以便它可以與服務器通信。所有Orbix罐子,IDL存根罐子都存在並簽名。我給我的JNLP文件作爲參考。其實我已經嘗試添加這些域文件和CORBA類作爲參數。但像往常一樣,它不起作用,運行JNLP後,Java控制檯突然消失。
CORBADemo.jnlp
?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://172.28.1.139:8400/Test_CORBA_App" href="CORBADemo.jnlp">
<information>
<title>CORBA Demo</title>
<vendor>Ushacomm</vendor>
</information>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="lib_6.3-Signed/UI_Fall_Test63.jar" main="true" download="eager" />
<jar href="lib_6.3-Signed/ConfigurationService.jar" download="eager" />
<jar href="lib_6.3-Signed/IDLStub.jar" download="eager" />
<jar href="lib_6.3-Signed/art-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/art.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip_cio-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip_cio.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip_nio-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip_nio.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_tls-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_tls.jar" download="eager" />
<jar href="lib_6.3-Signed/codeset.jar" download="eager" />
<jar href="lib_6.3-Signed/concurrency-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/concurrency.jar" download="eager" />
<jar href="lib_6.3-Signed/ifc-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/ifc.jar" download="eager" />
<jar href="lib_6.3-Signed/iiop.jar" download="eager" />
<jar href="lib_6.3-Signed/java_management_logging-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/java_mgmt_plugin-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/java_portable_interceptor-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/management-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/management.jar" download="eager" />
<jar href="lib_6.3-Signed/mgmt.jar" download="eager" />
<jar href="lib_6.3-Signed/omg-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/omg.jar" download="eager" />
<jar href="lib_6.3-Signed/perf_logging.jar" download="eager" />
<jar href="lib_6.3-Signed/portable_interceptor.jar" download="eager" />
<property name="Dorg.omg.CORBA.ORBClass" value="com.iona.corba.art.artimpl.ORBImpl"/>
<property name="Dorg.omg.CORBA.ORBSingletonClass" value="com.iona.corba.art.artimpl.ORBSingleton"/>
<property name="ORBdomain_name" value="VOIAMODOMAINNEW"/>
</resources>
<application-desc name="CORBADemo Demo Application" main-class="Launch" width="300" height="300">
</application-desc>
<update check="background"/>
<argument>1</argument>
<security>
<all-permissions/>
</security>
</jnlp>
<
當我從罐子使用批處理文件我的批處理文件看起來像這樣
runJar.bat Ç運行的應用程序:\ jdk1。 6.0_14 \ bin \ java -Xms64M -Xmx512M -Dorg.omg.CORBA.ORBClass = com.iona.corba.art.artimpl.ORBImpl -Dorg.omg.CORBA.ORBSingletonClass = com.iona.corba.art.artimpl.ORBSingleton -jar lib_6.3 \ UI_Fall_Test63.jar -ORBdomain_name VOIAMODOMAINNEW 1
暫停
正如你可以看到下面的東西在批處理文件中指定:
- JDK路徑:(C:\ jdk1.6.0_14 \ BIN \ JAVA)
- Java虛擬機用於最大和最小存儲器參數:(-Xms64m -Xmx512M)
- ORB類名:(-Dorg.omg.CORBA.ORBClass = com.iona.corba.art.artimpl.ORBImpl)
- ORB單例類名: (-Dorg.omg.CORBA.ORBSingletonClass = com.iona.corba.art.artimpl.ORBSingleton)
- JAR文件名來運行:(-jar lib_6.3 \ UI_Fall_Test63.jar)
- 域名:(-ORBdomain_name VOIAMODOMAINNEW)
- 主要函數參數:(1) 所有庫(Orbix jar以及其他第三方庫)都放在我的lib_6.3文件夾中,如您在#Point5中指定的那樣,jar位置目錄是lib_6.3。在相若方式開始網上我已經通過「的jarsigner」簽訂的所有的罐子,把他們在lib_6.3_Signed(如你剛纔在我的貼JNLP文件中看到)
的index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<script src="http://www.java.com/js/deployJava.js"></script>
<script>
// using JavaScript to get location of JNLP file relative to HTML page
var dir = location.href.substring(0,location.href.lastIndexOf('/')+1);
var url = dir + "CORBADemo.jnlp";
deployJava.createWebStartLaunchButton(url, '1.6.0');
</script>
</BODY>
</HTML>
點擊後在桌面上下載啓動按鈕jnlp。運行jnlp後,web啓動控制檯在特定點消失。 調查後,我發現在我的應用程序中,它在解析CORBA命名服務參考之前給出了打印。就在試圖解決「NamingService」並執行此代碼時,我認爲問題就出現了。
org.omg.CORBA.Object initNCRef = i_objORB.resolve_initial_references(「NameService」); - >「i_objORB」是「org.omg.CORBA.ORB」類型的對象。
在CORBA應用程序中,解析用於ORB的NamingService由以下用於在批處理文件中指定的類來簡化。您可以在我以前的帖子中看到批處理文件。 -Dorg.omg.CORBA.ORBClass = com.iona.corba.art.artimpl.ORBImpl
我不明白爲什麼控制檯正在消失。即使是我在我的應用程序中打印以查看堆棧。但控制檯在幾秒鐘內消失。我不明白爲什麼。
的JNLP是無效的。使用[JaNeLA](http://pscode.org/janela/)進行檢查並更正錯誤。 –