在IBM MobileFirst 8.0中使用Java适配器的外部库是否有任何限制
当我添加guava时,我的代码没有错误(MFPDEV适配器构建成功(,但是当部署到我的服务器时,它会响应错误:
[ERROR] Failed to execute goal com.ibm.mfp:adapter-maven-plugin:8.0.2016082422:deploy (default-cli) on project X: The output of /mfpadmin/management-apis/2.0/runtimes/mfp/adapters is of type text/html, which is unsupported. Expected an output of type text/xml or application/xml or application/json. -> [Help 1]
但是,当我在POM(MVN依赖项(中删除Guava时,我就可以部署适配器。我可以看到的问题也发生在其他一些库中。有没有选择使用此类库?
MFPDEV -V:8.0.0-2017012016
编辑:我最终通过在pom文件中设置guava的范围来解决问题:
<scope>provided</scope>
我在我的MFP 8.0环境中尝试了此问题,但看不到问题。
mfpdev -v
8.0.0-2017012016
0. Create a sample Java adapter "mfpdev adapter create"
1. Added dependency with guava 21 in pom.xml
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>21.0</version>
</dependency>
2. added a simple guava package and used it.
import com.google.common.base.Optional;
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getResourceData() {
// log message to server log
logger.info("Logging info message...");
Integer invalidInput = new Integer(20);
Optional<Integer> a = Optional.of(Input);
Optional<Integer> b = Optional.of(new Integer(10));
logger.info("Logging my message with guava");
);
return "Hello from guava resource "+sum(a,b) ;
}
4. build, deploy went successful
5. Access above resource
Request URL
http://localhost:9080/mfp/api/adapters/testGuavaAdapter/resource
Response Body
Hello from guava resource 30
Response Code
200
Response Headers
{
"x-powered-by": "Servlet/3.1",
"content-type": "text/plain",
"date": "Thu, 08 Jun 2017 11:48:32 GMT",
"content-length": "28"
}
对您的环境验证此工作POM。