cuốn sách gpt4 ai đã làm

java - Websocket 客户端无法部署到 Glassfish

In lại Tác giả: Vũ trụ không gian 更新时间:2023-11-04 07:27:09 hai mươi bốn 4
mua khóa gpt4 Nike

亲爱的 Stack Overflow 极客,

我正在尝试使用 Java EE 7 创建一个非常基本的 Java 客户端-服务器应用程序,目的是使用 JSR 356 实现通过 websocket 发送消息。

我已经按照我在那里找到的各种博客成功地编程和部署了服务器,并且我能够将 Javascript 客户端与我的 java 服务器进行通信。

现在我想做的是创建一个独立的java应用程序,它需要与服务器通信并检索相同的信息。我读到 JSR 356 实现可以在 Java 客户端中使用,这正是我所做的。我还使用 Tyrus 创建客户端并使用闩锁机制等保持其运行。漂亮。客户端终于编程完毕,服务器已启动并运行,但是当我尝试运行客户端时,出现此错误:

java.lang.reflect.InvocationTargetException
tại sun.reflect.NativeMethodAccessorImpl.invoke0(Phương thức gốc)
tại sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
tại sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.glassfish.appclient.client.acc.AppClientContainer.launch(AppClientContainer.java:446)
at org.glassfish.appclient.client.AppClientFacade.main(AppClientFacade.java:166)
Caused by: java.lang.NoClassDefFoundError: javax/websocket/CloseReason$CloseCode
at Main.Main.main(Main.java:27)
... 6 nữa
Caused by: java.lang.ClassNotFoundException: javax.websocket.CloseReason$CloseCode
tại java.net.URLClassLoader$1.run(URLClassLoader.java:366)
tại java.net.URLClassLoader$1.run(URLClassLoader.java:355)
tại java.security.AccessController.doPrivileged(Phương thức gốc)
tại java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at org.glassfish.appclient.client.acc.ACCClassLoader.findClass(ACCClassLoader.java:237)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
tại java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 7 thêm
Java Result: 1

我在 NetBeans 7.3 中使用 Java EE 7 API + Tyrus 并在 Glassfish 4 中部署(据我所知,Glassfish 4 支持 JSR 356 实现)现在,到底为什么找不到 CloseReason 类! :(如果是这样的话,它不应该编译,不是吗?

奇怪的是,它并没有提示与 websocket 实现(JSR 356)相关的其他类,另一方面,我部署了服务器(web-app)并且 websocket 机制工作得很好。 (我想我没有在那里实现 CloseReason ..但为什么它只提示这一点!:@)

我们将非常感谢您提供的任何帮助!!

chúc mừng,

另一位 Stack Overflow 极客寻求帮助。 :)

câu trả lời hay nhất

我想说,仅分析堆栈跟踪并给您一个“答案”是完全不可能的。至少您应该包含项目中的一些代码片段。

好吧,我认为问题可能是这样的:Tyrus 库没有随应用程序客户端容器一起分发。那么在本地,类加载器想要加载的第一个类..将会失败。

因此,右键单击您的项目并选择属性。选择。确保您的库已放置在chạy选项卡下。如果没有,请单击在此选项卡中找到的添加库...按钮并按照步骤操作!

希望这对您有帮助。如果没有,请查看cái này有关如何打包 JavaFX 客户端并通过 Java Web Start 启动它的教程。本教程中的应用程序客户端也依赖于外部库,您可能会在其中找到一些有用的东西。

关于java - Websocket 客户端无法部署到 Glassfish,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18369160/

hai mươi bốn 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress