我有一个实现JWS Webservice的EJB项目,如下所示:
@Stateless
@Remote(WebServiceTest.class)
@WebService(
serviceName="TestService",
name="TestName"
)
public class WebServiceTestImpl implements WebServiceTest {
@Override
@WebMethod(operationName="hello")
public String hello() {
return "Hello World!";
}
}
Run Code Online (Sandbox Code Playgroud)
我使用简单的EAR项目在WebLogic 10.3上完美地部署和测试它.现在我需要在我的项目中使用Hibernate,所以从以前的经验我知道我必须使用Hibernate中的Antrl而不是容器,所以我在EAR项目中创建了一个weblogic-application.xml:
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-application ...>
<wls:prefer-application-packages>
<wls:package-name>antlr.*</wls:package-name>
</wls:prefer-application-packages>
</wls:weblogic-application>
Run Code Online (Sandbox Code Playgroud)
现在,当我部署EAR时,我收到此错误:
Unable to deploy EJB: WebServiceTestImpl from test-1.0.0-SNAPSHOT.jar:
***** ASSERTION FAILED *****
at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:467)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:507)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:149)
Truncated. see log file for complete stacktrace
Caused By: java.lang.ClassNotFoundException: test.WebServiceTestImpl_zd33dy_WSOImpl
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:280)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:253)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:177)
Truncated. …Run Code Online (Sandbox Code Playgroud) 有没有办法如何以编程方式查找java缓存目录?
Normaly它位于这样的目录中:
System.getProperty("user.home") + someMiddleDir + "/Sun/Java/Deployment/cache/" +
versionCode;
Run Code Online (Sandbox Code Playgroud)
它在Windows Vista上解析为 "c:/Users/userId/AppData/LocalLow/Sun/Java/Deployment/cache/6.0"
但我需要以更动态/更精确的方式找到它(最小硬编码/路径).
我从未使用过JNLP,而且我没有运行web/war服务器所以我将从sratch安装它:
哪个用?
我想知道是否有人已经使用JNLP可以为服务器做任何推荐.
我只想要一个空白页面,中间有一个按钮,用于启动应用程序,仅此而已.
我安装了JDK 1.7,我需要创建一个Java Web Start应用程序.我搜索了互联网,发现你需要在项目构建路径中使用jnlp.jar.
有一个类似的问题(http://stackoverflow.com/questions/7593029/where-can-i-download-jnlp-jar)用户说它在jdk文件夹中,特别是在C:\ Program Files\Java \中jdk1.6.0_27 \样品\ JNLP \的servlet.
但那是JDK 1.6.在1.7中没有示例文件夹,我找不到任何jnlp.jar与Windows搜索.
如果还有其他方法可以使用JNLP API请告诉我.
我有一个大的Java小程序(大约7 MB).这是一个古老而又大的项目,由几个小型项目组成,所有项目都使用"fatjar"捆绑在一个罐子里.由于applet是一项老技术而且我的功能有问题(我的applet没有签名)你能告诉我将代码切换到JWS(Java web start)的确切好处,并且它是值得的开关吗?
如果我切换到JWS,我将能够将我的applet分成几个罐子,这些罐子将由主罐子加载和使用(很像dll)?我的目标是将当前的applet分成几个独立的罐子.这样,当我在一个项目中更改某些内容时,我只会上传一个包含已更改项目的小jar,而不是整个,大而胖的applet.
如果JWS没有比applet好多少,你能建议我使用SWING的其他技术吗?重写(并分成MVC)整个事情所以它使用HTML或其他东西是不行的.我的applet使用的几乎所有控件都是扩展标准SWING控件的特殊自定义控件.
我使用XMonad + gnome作为窗口管理器.我有一个问题,当我运行Java Web Start应用程序时,它会显示一个空窗口,如屏幕:

有什么我可以做的来解决它吗?
更新:
我尝试了JWS示例中的简单程序,它是正常的.所以它应该是应用程序的问题.
失败的应用程序是Blast2Go.
我有一个程序,我一直在写,使用WebStart,我似乎遇到了一个问题.我注意到无论我做什么,我都无法让WebStart下载特定于操作系统的jar.
您将在下面看到我的JNLP文件.你看看你会注意到的资源我有一些独立于操作系统和架构的jar,然后我有一些依赖于操作系统的jar和nativelibs.
目前核心和通用文件夹中的所有内容都将正确加载,但没有其他功能.如果我做一个链接需要我的电脑会下载和加载就好了一切单独的JNLP文件(也有少数打嗝搞清楚).
这是我的JNLP文件,你看到可能出错了吗?
<?xml version='1.0' encoding='utf-8' ?>
<jnlp
spec="1.0+"
codebase="http://xxxx.xxxxxxxxxxxxxxxx.xxx/java/"
href="MyApp.jnlp?k=14&d=dGMDES%2Bgs0A3d03HbVKkD4T7ONIby1a5NZGMVkwHzsV7tydBs2eoPvyHfeXlNpcxD8H8Wt1kRePtxBuOswZ%2FxA%3D%3D">
<information>
<title>Program Name</title>
<vendor>Company</vendor>
<description></description>
<description kind="short"</description>
</information>
<update check="always" policy="always" />
<resources>
<j2se version="1.7+" href="http://java.sun.com/products/autodl/j2se" />
<property name="sun.awt.disableMixing" value="false"/>
<jar href="core/Utilities.jar" size="146289" main="false" download="lazy" />
<jar href="core/DPFP.jar" size="40239" main="false" download="lazy" />
<jar href="core/SigPad.jar" size="8293" main="false" download="lazy" />
<jar href="core/SoapService.jar" size="741035" main="false" download="lazy" />
<jar href="core/Marketing.jar" size="857781" main="false" download="lazy" />
<jar href="core/App.jar" size="1172429" main="true" download="eager" />
<jar href="core/Element.jar" size="506791" main="false" download="lazy" />
<jar href="universal/ekitspell.jar" size="330488" main="false" download="lazy" /> …Run Code Online (Sandbox Code Playgroud) 根据Java 1.7u25,您应该将Codebase属性添加到清单中,我已经这样做了.
但是现在我无法在本地测试它,因为属性值与Netbeans生成的本地JNLP不匹配,它没有代码库值.
清单对于其代码库应该具有什么价值和/或我在jnlp中作为代码库有什么价值才能在本地工作?
我有一个连接到 Web 服务的 webstart 应用程序。清单有:
Permissions: all-permissions
Run Code Online (Sandbox Code Playgroud)
jnlp 有:
<security>
<all-permissions/>
</security>
Run Code Online (Sandbox Code Playgroud)
但是,当创建到 Web 服务的连接时,我得到了一个java.lang.SecurityException: setContextClassLoader(完整的堆栈跟踪如下)。当我直接运行应用程序(没有 webstart)时,它工作正常。有什么我应该检查或更改我的设置来解决问题的吗?
注意:我使用的是 Java 8。该应用程序在构建 121 时运行良好,但在构建 123、124 或 125(最新的)时失败。所以要么我的设置很好并且在 b121 和 b123 之间引入了一个错误,要么在 b123 中修复了一个错误,这暴露了我的设置中的问题。
org.glassfish.hk2.api.MultiException: A MultiException has 2 exceptions. They are:
1. java.lang.SecurityException: setContextClassLoader
2. java.lang.IllegalStateException: Unable to perform operation: create on org.jvnet.hk2.internal.DynamicConfigurationServiceImpl
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:362) ~[na:na]
at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:454) ~[na:na]
at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:119) ~[na:na]
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2296) ~[na:na]
at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:590) ~[na:na]
at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:577) ~[na:na]
at org.glassfish.hk2.utilities.ServiceLocatorUtilities.enablePerThreadScope(ServiceLocatorUtilities.java:89) ~[na:na]
at org.glassfish.jersey.internal.inject.Injections._createLocator(Injections.java:144) ~[na:na]
at org.glassfish.jersey.internal.inject.Injections.createLocator(Injections.java:137) …Run Code Online (Sandbox Code Playgroud) 我正在开发一个允许管理员在 RabbitMQ 上创建用户的网站。我检查了 RabbitMQ api doc,并找到了一个在 windows/unix 提示符下创建用户的示例。命令行如下所示:
curl -i -u ADMIN_USER: ADMIN_PASSW -H "content-type:application/json" -XPUT
{"password":"PASSW_WRITTEN","tags":"administrator"}
http://IP_ADRESS:PORT/api/users/USER_NAME
Run Code Online (Sandbox Code Playgroud)
这是文档的链接
http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_4_1/priv/www/api/index.html
在提示中,它工作正常。但是在网站上,我不知道如何发送此命令。
注意我正在使用 JSF 在 Java Web 上进行开发,但欢迎使用任何其他 Web 语言示例。
谢谢你的帮助。