gpt4 book ai didi

java - Liferay 7 - 使用 REST Web 服务的最简单方法不起作用

转载 作者:行者123 更新时间:2023-12-01 20:53:07 24 4
gpt4 key购买 nike

我根本无法从 Liferay 7 调用 REST Web 服务。我使用 Eclipse 创建了一个 REST 模块,它默认在 build.gradle 中提供了以下条目:

dependencies {
compileOnly group: 'javax.ws.rs', name: 'javax.ws.rs-api', version: '2.0.1'
compileOnly group: "org.osgi", name: "org.osgi.service.component.annotations", version: "1.3.0"
}

调用 REST Web 服务的代码:

String uri = "http://RestServiceURL";
Client client = ClientBuilder.newClient();
WebTarget target = client.target(uri);
String result = target.request(MediaType.TEXT_PLAIN_TYPE)
.get().readEntity(String.class);

部署并调用 REST 服务时出现错误:

Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.client.JerseyClientBuilder cannot be found by com.liferay.portal.remote.cxf.common_2.0.6
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:444)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:357)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:349)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at javax.ws.rs.client.FactoryFinder.newInstance(FactoryFinder.java:115)
at javax.ws.rs.client.FactoryFinder.find(FactoryFinder.java:225)
at javax.ws.rs.client.ClientBuilder.newBuilder(ClientBuilder.java:86)
... 110 more

我尝试将以下条目添加到 build.gradle

compile group: 'org.glassfish.jersey.core', name: 'jersey-client', version: '2.21'

是否有任何具体条目可以使这项工作正常进行?

最佳答案

您是否正在导入 bnd.bnd 文件中的包?如果是,您可以尝试“分辨率:=可选”选项吗?它应该可以解决您的问题。

例如,您应该在 bnd.bnd 中写入以下内容:

导入包:com.sun.jersey.api.json;分辨率:=可选;\com.sun.jersey.core.header;分辨率:=可选;

请注意,您可能需要根据您的要求更改包名称,上面提到的只是一个示例。

我希望您已经引用过 OSGi 模块依赖关系博客: https://web.liferay.com/web/user.26526/blog/-/blogs/osgi-module-dependencies

如果您能分享bnd.bnd的内容,那就更有帮助了。

关于java - Liferay 7 - 使用 REST Web 服务的最简单方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42848566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com