Vespa 教程 – HTTP API 用例因 IllegalArgumentException 无法激活
Vespa Tutorial – HTTP API use-case fails to activate with IllegalArgumentException
我目前正在学习 Vespa 教程,运行 遇到了 HTTP API use-case 的问题。从 mvn install package
到 vespa-deploy prepare target/application.zip
.
一切正常
对 vespa-deploy activate
returns 的正常调用,但应用程序在 localhost:8080
上永远无法使用。查看 /opt/vespa/logs/vespa/vespa.log
(在 VM 中)可以找到以下堆栈跟踪:
Container.com.yahoo.jdisc.core.StandaloneMain error Unexpected:
exception=
java.lang.IllegalArgumentException: Could not create a component with id 'com.mydomain.demo.DemoComponent'.
Tried to load class directly, since no bundle was found for spec: sample-app-http-api-searcher.
If a bundle with the same name is installed, there is a either a version mismatch or the installed bundle's version contains a qualifier string.
at com.yahoo.osgi.OsgiImpl.resolveFromClassPath(OsgiImpl.java:48)
...
这是使用新的 Docker 图像和 sample-apps
git 存储库的干净克隆发生的。准备和激活基本示例以及其他 http 示例确实可以无缝运行。
我检查了源代码和 xml 文件是否存在明显的问题,但对失败的原因和位置一无所知。
target/application.zip
包含
application/components/http-api-using-searcher-1.0.1-deploy.jar
application/hosts.xml
application/searchdefinitions/basic.sd
application/services.xml
并且 jar 本身确实包含一个 com/mydomain/demo/DemoComponent.class
文件(除其他外)。
github 跟踪器上的潜在相关问题:https://github.com/vespa-engine/vespa/issues/3479 我也会在那里发布一个 link 到这个问题,但我仍然认为值得一个 SO 问题,至少要在 vespa
标签后面采取一些行动 :)
应用程序 services.xml 文件中的包 ID 错误。请从 git 中提取应用程序,然后重试。另见公关:https://github.com/vespa-engine/sample-apps/pull/18
简要说明:services.xml 中 bundle="<id>"
声明中给出的包 ID 必须与包清单中的 'Bundle-SymbolicName' 匹配。当使用 Vespa bundle-plugin 构建 bundle 时,符号名称默认与项目的 artifactId 相同。因此,在大多数情况下,您只需验证 bundle id 是否与 artifactId 匹配。
我目前正在学习 Vespa 教程,运行 遇到了 HTTP API use-case 的问题。从 mvn install package
到 vespa-deploy prepare target/application.zip
.
对 vespa-deploy activate
returns 的正常调用,但应用程序在 localhost:8080
上永远无法使用。查看 /opt/vespa/logs/vespa/vespa.log
(在 VM 中)可以找到以下堆栈跟踪:
Container.com.yahoo.jdisc.core.StandaloneMain error Unexpected:
exception=
java.lang.IllegalArgumentException: Could not create a component with id 'com.mydomain.demo.DemoComponent'.
Tried to load class directly, since no bundle was found for spec: sample-app-http-api-searcher.
If a bundle with the same name is installed, there is a either a version mismatch or the installed bundle's version contains a qualifier string.
at com.yahoo.osgi.OsgiImpl.resolveFromClassPath(OsgiImpl.java:48)
...
这是使用新的 Docker 图像和 sample-apps
git 存储库的干净克隆发生的。准备和激活基本示例以及其他 http 示例确实可以无缝运行。
我检查了源代码和 xml 文件是否存在明显的问题,但对失败的原因和位置一无所知。
target/application.zip
包含
application/components/http-api-using-searcher-1.0.1-deploy.jar
application/hosts.xml
application/searchdefinitions/basic.sd
application/services.xml
并且 jar 本身确实包含一个 com/mydomain/demo/DemoComponent.class
文件(除其他外)。
github 跟踪器上的潜在相关问题:https://github.com/vespa-engine/vespa/issues/3479 我也会在那里发布一个 link 到这个问题,但我仍然认为值得一个 SO 问题,至少要在 vespa
标签后面采取一些行动 :)
应用程序 services.xml 文件中的包 ID 错误。请从 git 中提取应用程序,然后重试。另见公关:https://github.com/vespa-engine/sample-apps/pull/18
简要说明:services.xml 中 bundle="<id>"
声明中给出的包 ID 必须与包清单中的 'Bundle-SymbolicName' 匹配。当使用 Vespa bundle-plugin 构建 bundle 时,符号名称默认与项目的 artifactId 相同。因此,在大多数情况下,您只需验证 bundle id 是否与 artifactId 匹配。