无法解析Grails插件项目导入javax.websocket

赤丹

嗨,我正在Grails中的一个项目中工作,该项目需要导入这些文件-

import javax.websocket.CloseReason;
import javax.websocket.CloseReason.CloseCode;
import javax.websocket.Endpoint;
import javax.websocket.EndpointConfig;
import javax.websocket.MessageHandler;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.RemoteEndpoint;
import javax.websocket.Session;

因此,当我在Grails项目上工作时,这些导入工作正常,但是现在我被告知将项目转移到Grails插件项目中,该项目将在主项目中导入,所以现在在这种情况下,当我尝试导入上述项目时提到的文件,它告诉我一个错误, The import javax.websocket cannot be resolved.

我试图摆弄BuildConfig.groovy中的某些依赖项,但无法解决此问题。如果有人尝试过,请让我知道如何javax.websocket.*在Grails插件项目中导入的文件

谢谢。

伯特·贝克维斯(Burt Beckwith)

这可能是不必要的分号。

在不太可能的情况下,它要涉及的更多,请确保您在IDE之外工作以减少活动变量的数量。首先让它在Grails中运行,然后在GGTS / IntelliJ / etc中使其运行。

插件和应用程序的过程完全相同BuildConfig.groovy包含这些类的jar添加一个依赖项,然后运行grails compile以触​​发依赖项解析。如果尚未下载jar,它将下载到本地Maven / Ivy / Gradle缓存中,并将其添加到应用的类路径中。

在这种情况下,混淆的原因是这些类位于tomcat-embed-websocket-<version>.jar应用程序的类路径中,因为您保留了对Tomcat插件的默认依赖关系,而且显然不是您的插件的依赖关系(并且可能不应该这样)是)。它恰好在应用程序中运行,但是如果您删除了Tomcat插件依赖项(例如改为使用Jetty),它将开始失败。

为了使它起作用,将其添加到您的代码dependencies块中并运行grails compile

compile 'javax.websocket:javax.websocket-api:1.1'

您还应该考虑使用spring-websocket插件,而不是手动完成所有操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章