Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Configuration Mulesoft-将JSON或XML属性文件加载到全局变量中_Configuration_Mule_Anypoint Studio - Fatal编程技术网

Configuration Mulesoft-将JSON或XML属性文件加载到全局变量中

Configuration Mulesoft-将JSON或XML属性文件加载到全局变量中,configuration,mule,anypoint-studio,Configuration,Mule,Anypoint Studio,我试图将一个相对简单的配置文件加载到一个变量中,我可以通过MEL全局访问该变量。我不想使用典型的属性字段,因为我的结构不是扁平的 我可以通过如下方式将文件作为bean加载,但这给我留下了一个巨大的字符串,而不是hashmap(我知道为什么,我只是不知道如何修复它): 关于适当或更好的方法的想法?以下是解决方案 类文件: package com.example; import java.io.File; import java.util.HashMap; import java.util.M

我试图将一个相对简单的配置文件加载到一个变量中,我可以通过MEL全局访问该变量。我不想使用典型的属性字段,因为我的结构不是扁平的

我可以通过如下方式将文件作为bean加载,但这给我留下了一个巨大的字符串,而不是hashmap(我知道为什么,我只是不知道如何修复它):


关于适当或更好的方法的想法?

以下是解决方案

类文件:

package com.example;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;


public class JSONUtil {

    File in;
    public File getIn() {
        return in;
    }
    public void setIn(File in) {
        this.in = in;
    }

    public Map<String, Object> getConfigAsMap(){        
        try{
            ObjectMapper mapper = new ObjectMapper();
            TypeReference<HashMap<String,Object>> typeRef = new TypeReference<HashMap<String,Object>>() {};

            Map<String, Object> map = mapper.readValue( in, typeRef);
            System.out.println(map);
            return map;
        } catch(Exception exception){
            exception.printStackTrace();
            return null;
        }
    }
}
package.com.example;
导入java.io.File;
导入java.util.HashMap;
导入java.util.Map;
导入org.codehaus.jackson.map.ObjectMapper;
导入org.codehaus.jackson.type.TypeReference;
公共类JSONUtil{
归档;
公共文件getIn(){
返回;
}
公共void设置入(文件入){
this.in=in;
}
公共映射getConfigAsMap(){
试一试{
ObjectMapper mapper=新的ObjectMapper();
TypeReference typeRef=新的TypeReference(){};
Map Map=mapper.readValue(in,typeRef);
系统输出打印项次(map);
返回图;
}捕获(异常){
异常。printStackTrace();
返回null;
}
}
}
配置:

    <spring:bean id="JSONUtil" class="com.example.JSONUtil" >
              <spring:property name="in"  value="classpath:client-configuration.json"/>
    </spring:bean>

    <spring:bean name="ClientConfiguration" factory-bean="JSONUtil" factory-method="getConfigAsMap" />

这正在工作,JSON配置作为映射加载。

以下是解决方案

类文件:

package com.example;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;


public class JSONUtil {

    File in;
    public File getIn() {
        return in;
    }
    public void setIn(File in) {
        this.in = in;
    }

    public Map<String, Object> getConfigAsMap(){        
        try{
            ObjectMapper mapper = new ObjectMapper();
            TypeReference<HashMap<String,Object>> typeRef = new TypeReference<HashMap<String,Object>>() {};

            Map<String, Object> map = mapper.readValue( in, typeRef);
            System.out.println(map);
            return map;
        } catch(Exception exception){
            exception.printStackTrace();
            return null;
        }
    }
}
package.com.example;
导入java.io.File;
导入java.util.HashMap;
导入java.util.Map;
导入org.codehaus.jackson.map.ObjectMapper;
导入org.codehaus.jackson.type.TypeReference;
公共类JSONUtil{
归档;
公共文件getIn(){
返回;
}
公共void设置入(文件入){
this.in=in;
}
公共映射getConfigAsMap(){
试一试{
ObjectMapper mapper=新的ObjectMapper();
TypeReference typeRef=新的TypeReference(){};
Map Map=mapper.readValue(in,typeRef);
系统输出打印项次(map);
返回图;
}捕获(异常){
异常。printStackTrace();
返回null;
}
}
}
配置:

    <spring:bean id="JSONUtil" class="com.example.JSONUtil" >
              <spring:property name="in"  value="classpath:client-configuration.json"/>
    </spring:bean>

    <spring:bean name="ClientConfiguration" factory-bean="JSONUtil" factory-method="getConfigAsMap" />


这正在工作,JSON配置作为映射加载。

那么您想在来自外部文件的上下文中使用哈希映射吗?是的,基本上。那么您想在来自外部文件的上下文中使用哈希映射吗?是的,基本上。