【问题标题】:File access in @onMessage method of @ServerEndPoint class@ServerEndPoint 类的@onMessage 方法中的文件访问
【发布时间】:2016-09-22 19:04:46
【问题描述】:

我开发了一个部署为 OSGI felix 包的 java 项目。 该项目包含 2 个包: - 第一个包只包含一个类(CLASS_1),它应该向文件写入/读取一些消息; - 第二个包包含 2 个类:一个 webSocketServer (@ServerEndPoint),其中包含一个方法 @onMessage(以及所有其他强制方法)和另一个用于注册 websocket 的类。

在第二个包中的@OnMessage 方法中,我会调用第一个包中的方法来存储即将到来的消息。

如果我不使用 CLASS_1 的方法,websocket 可以正常工作。但是当我使用它时,在运行时(当一条消息到达时)我对该类(CLASS_1)有一个 ClassNotFoundException。我不知道是什么问题。 pom.xml 文件中可能缺少某些内容? (我用的是maven)

有人可以帮我吗?

提前致谢

【问题讨论】:

    标签: java websocket osgi-bundle


    【解决方案1】:

    您需要使用 OSGi 纲要的服务组件架构。在您的情况下,CLASS_1 必须发布它的服务,该服务将从您的其他捆绑包中使用(通过接口),并且您还需要定义组件类以注入您的服务并使用它们。

    有各种库可以实现服务组件架构,例如 apache.felix.scr、apache blueprint、aQute 等。我建议您仔细检查每个库并确定最适合您的项目的库。

    【讨论】:

      猜你喜欢
      • 2014-03-20
      • 2015-02-28
      • 2013-07-29
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 2015-06-16
      • 2016-08-29
      相关资源
      最近更新 更多