2014-09-19 34 views
0

一个JAR是否依赖ACC的另一个JAR?该文件不是很清楚,至少so far as I've read使用Glassfish上的应用程序客户端容器(ACC)为远程部署构建耳朵

我的理解是,我需要从existing code构建一个EAR,我可以远程部署。这个EAR应该包含现有的客户端。所有代码:1)客户端2)EJB模块3)远程接口在本地主机上运行。我已将EJB部署到远程Glassfish服务器。

如何从Creating and Running an Application Client on the GlassFish Server创建“ant-java-ee project”?我创建的包非常奇怪。 Netbeans似乎没有一个“ant jar”选项,它以我熟悉的方式构建它。 Netbeans应用程序通常没有ant jar目标; ant dist结果:

dist: 

BUILD SUCCESSFUL 
Total time: 6 seconds 
[email protected]:~/NetBeansProjects/HelloClient$ ll 
total 32 
drwxrwxr-x 7 thufir thufir 4096 Sep 19 11:51 ./ 
drwxrwxr-x 16 thufir thufir 4096 Sep 16 09:22 ../ 
drwxrwxr-x 5 thufir thufir 4096 Sep 19 11:51 build/ 
-rw-rw-r-- 1 thufir thufir 3654 Sep 13 20:40 build.xml 
drwxrwxr-x 2 thufir thufir 4096 Sep 19 11:51 dist/ 
drwxrwxr-x 3 thufir thufir 4096 Sep 13 20:38 nbproject/ 
drwxrwxr-x 4 thufir thufir 4096 Sep 13 20:38 src/ 
drwxrwxr-x 2 thufir thufir 4096 Sep 13 20:38 test/ 
[email protected]:~/NetBeansProjects/HelloClient$ ll dist/ 
total 12 
drwxrwxr-x 2 thufir thufir 4096 Sep 19 11:51 ./ 
drwxrwxr-x 7 thufir thufir 4096 Sep 19 11:51 ../ 
-rw-rw-r-- 1 thufir thufir 1848 Sep 19 11:51 HelloClient.jar 
[email protected]:~/NetBeansProjects/HelloClient$ 
[email protected]:~/NetBeansProjects/HelloClient$ 
[email protected]:~/NetBeansProjects/HelloClient$ java -jar dist/HelloClient.jar 
Exception in thread "main" java.lang.NoClassDefFoundError: hello/HelloBeanRemote 
    at helloclient.Main.main(Main.java:11) 
Caused by: java.lang.ClassNotFoundException: hello.HelloBeanRemote 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    ... 1 more 
[email protected]:~/NetBeansProjects/HelloClient$ 

在另一方面,ant run给出了很好的效果:

​​

这些罐子的,不能被包装我怎么会想到:

[email protected]:~/NetBeansProjects/HelloClient$ 
[email protected]:~/NetBeansProjects/HelloClient$ jar -tf dist/HelloClient.jar 
META-INF/ 
META-INF/MANIFEST.MF 
helloclient/ 
META-INF/application-client.xml 
helloclient/Main.class 
[email protected]:~/NetBeansProjects/HelloClient$ 
[email protected]:~/NetBeansProjects/HelloClient$ jar -tf dist/HelloClientClient.jar 
META-INF/MANIFEST.MF 
META-INF/application-client.xml 
META-INF/glassfish-application-client.xml 
META-INF/sun-application-client.xml 
org/glassfish/appclient/client/AppClientFacade.class 
META-INF/javaee.client.policy 
META-INF/restrict.client.policy 
[email protected]:~/NetBeansProjects/HelloClient$ 
[email protected]:~/NetBeansProjects/HelloClient$ jar -tf dist/HelloClientClient/HelloClient 
HelloClientClient.jar HelloClient.jar   
[email protected]:~/NetBeansProjects/HelloClient$ jar -tf dist/HelloClientClient/HelloClient.jar 
META-INF/MANIFEST.MF 
META-INF/application-client.xml 
helloclient/Main.class 
[email protected]:~/NetBeansProjects/HelloClient$ 
[email protected]:~/NetBeansProjects/HelloClient$ jar -tf dist/HelloClientClient/HelloClientClient.jar 
META-INF/MANIFEST.MF 
META-INF/application-client.xml 
META-INF/glassfish-application-client.xml 
META-INF/sun-application-client.xml 
org/glassfish/appclient/client/AppClientFacade.class 
META-INF/javaee.client.policy 
META-INF/restrict.client.policy 
[email protected]:~/NetBeansProjects/HelloClient$ 

我不清楚到这些JAR之间的关系。通常Netbeans会为API创建一个“lib”文件夹。在这种情况下,ACC有一些魔力。目标是将此应用程序打包为EAR,以便将其部署到远程Glassfish服务器。

回答

0

选择File> New Project并在Java EE类别中选择企业应用程序客户端

你需要远程接口,客户端不EJB代码

客户端使用RMI(插座)交谈服务器,并运行EJB在服务器端

客户端容器像对待继子女的厂商,大多数SOA架构具有完整的Java EE服务器两侧,即在Java EE Web应用程序是Java EE的EJB/web服务应用程序的客户端

我讨厌那些netbeans的文件,我宁愿用maven,它有时可能很难,但你会在网络上得到更好的支持

远程调用我会用JAX-RS或JAX-WS

+0

到澄清,在客户端没有ejb代码 - 这就像netbeans样本。 – Thufir 2014-09-19 19:59:04

+0

如果你真的想要客户端项目,它必须是客户端项目,而不是java ee ejb类型项目 – 2014-09-19 20:00:26

+0

,这意味着ACC没有任何意义,也没有netbeans教程......那么ACC的目的是什么? – Thufir 2014-09-19 20:36:30

相关问题