Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mobilefirst-Java适配器中的响应类型_Java_Jax Rs_Ibm Mobilefirst_Mobilefirst Adapters - Fatal编程技术网

mobilefirst-Java适配器中的响应类型

mobilefirst-Java适配器中的响应类型,java,jax-rs,ibm-mobilefirst,mobilefirst-adapters,Java,Jax Rs,Ibm Mobilefirst,Mobilefirst Adapters,我有一个类(存储在server/java中),它返回一个响应类型对象,我想在适配器中使用它 public class CorsResponse { public static Response build() { return Response .ok() .header("Access-Control-Allow-Origin", "*") .header("Access-Control-Allow-Methods

我有一个类(存储在server/java中),它返回一个响应类型对象,我想在适配器中使用它

public class CorsResponse {
public static Response build() {
    return Response
            .ok()
            .header("Access-Control-Allow-Origin", "*")
            .header("Access-Control-Allow-Methods", "GET, POST")
            .header("Access-Control-Allow-Headers", "accept, origin, content-type")
            .header("Access-Control-Max-Age", "1728000")
            .build();
}
如果在适配器的方法中使用此类,则会出现异常:

javax.servlet.ServletException:java.lang.LinkageError:loader 约束冲突:加载程序(的实例) com/ibm/ws/classloading/internal/AppClassLoader)之前启动 为名为“javax/ws/rs/core/Response”的不同类型加载

原因:java.lang.LinkageError:加载程序约束冲突:加载程序 (com/ibm/ws/classloading/internal/AppClassLoader的实例) 以前为名称为的其他类型启动加载 “javax/ws/rs/core/Response”


如何设置要加载的响应类型?

如果您对CorsFilter感兴趣,我建议像下面这样实现它,并将该类添加到您的
应用程序中

@Provider
public class ResponseCorsFilter implements ContainerResponseFilter {

    @Override
    public void filter(ContainerRequestContext requestContext,
            ContainerResponseContext responseContext) throws IOException {

        responseContext.getHeaders().add("Access-Control-Allow-Origin", "*");
        responseContext.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, OPTIONS");


        String reqHead = requestContext.getHeaderString("Access-Control-Request-Headers");

        if(null != reqHead && !reqHead.equals("")){
            responseContext.getHeaders().add("Access-Control-Allow-Headers", reqHead);
        }

    }


}

我已经创建了一个外部项目,将类放在那里,将其编译成jar文件,并将其包含在adapters/adapter\u name/lib文件夹中(也添加到构建路径中)。

ContainerResponseFilter在MFP服务器libs中不可用。。。或者它有一个不同的名称:)好吧,您用jax-rs标记了它(并在标题中提到)。jax-rs()规范指定了
ContainerResponseFilter
类的存在范围。我以为你在用jax-rs实现?!你说的MFP是什么意思?你说的规格是对的。MFP是IBMMobileFirst平台(包括WebSphereLiberty概要文件),我认为它没有这个类。