【问题标题】:Grails Plugin project import javax.websocket cannot be resolvedGrails Plugin 项目导入 javax.websocket 无法解决
【发布时间】:2015-02-25 09:06:31
【问题描述】:

您好,我正在 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 中的一些依赖项,但无法解决这个问题。如果有人尝试过,请告诉我如何在 Grails 插件项目中导入 javax.websocket.* 的文件。

谢谢。

【问题讨论】:

    标签: grails plugins


    【解决方案1】:

    这可能是不必要的分号。

    在不太可能的情况下,它比这更复杂,请确保您在 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 插件,而不是手动执行所有操作。

    【讨论】:

    • 非常感谢伯特。分号在那里,因为它们是 java 文件。我尝试将它们转换为 groovy,删除分号,但没有任何改变。在没有IDE的情况下也试过了,结果是一样的。尝试放置您提到的依赖项和插件。我实际上尝试了几次,有时进口得到解决,有时没有。出于好奇,我有时在命令行上以 grails 交互模式尝试不同的组合,有时则没有。我会说它从来没有解决交互模式下的导入问题。将在周末尝试并通知您。
    • 是的,多亏了你,我才能解决我的问题。如上所述,如果其他人面临同样的问题,他将能够在此处查找解决方案。
    • 我在开玩笑,但请查看this style guide。我很高兴它起作用了 - 实际的解决方案是什么?
    • compile 'javax.websocket:javax.websocket-api:1.1' 是实际的解决方案。虽然 spring-websocket 插件没有解决导入问题。另外,有点超出范围,但想提一下,在使用 grails 交互模式时,我发现每次更新 BuildConfig.groovy 文件时,我都必须退出并再次启动交互模式,以便在运行 compile 时发生更改命令。而非交互模式完美运行。非常感谢 Burt 过来回答我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 2013-03-11
    相关资源
    最近更新 更多