Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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
Java 找不到类型为[com.app.fetcher.DataFetcher]的符合依赖关系的bean_Java_Spring_Autowired - Fatal编程技术网

Java 找不到类型为[com.app.fetcher.DataFetcher]的符合依赖关系的bean

Java 找不到类型为[com.app.fetcher.DataFetcher]的符合依赖关系的bean,java,spring,autowired,Java,Spring,Autowired,我知道也有类似的问题,但我尝试过多种解决方案,但都不奏效 我有一个DataFetcher类 package com.app.fetcher; @Component public class DataFetcher{ private ArrayList<Data> data = new ArrayList<>() public DataFetcher() { } @PostConstruct public v

我知道也有类似的问题,但我尝试过多种解决方案,但都不奏效

我有一个DataFetcher类

package com.app.fetcher;

@Component
public class DataFetcher{

    private ArrayList<Data> data = new ArrayList<>()        

    public DataFetcher() {

    }

    @PostConstruct
    public void loadData(){
        //load data from external API and store it to data collection
    }

    //getters and setters
}
package com.app.fetcher;


import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;

@Component
public class DataFetcher {
    private final static String SERVER_STATUS_QUERY = "/api/wow/realm/status";

    private ArrayList<Data> data = new ArrayList<>();

    public DataFetcher() {

    }

    @PostConstruct
    private void init() {
        URL url = null;
        try {
            url = new URL("http://eu.battle.net" + SERVER_STATUS_QUERY);
            URLConnection connection = url.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

            String input;
            StringBuilder stringBuilder = new StringBuilder();

            while ((input = in.readLine()) != null) {
                stringBuilder.append(input);
            }

            in.close();
            parseData(stringBuilder.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    private void parseData(String json) {
        try {
            JSONObject obj = new JSONObject(json);

            JSONArray jsonArray = obj.getJSONArray("realms");
            for (int i = 0; i < jsonArray.length(); i++) {
                data.add(new Data(jsonArray.getJSONObject(i).getString("name"), jsonArray.getJSONObject(i).getString("type")));
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    public ArrayList<Data> getData() {
        return data;
    }

    public void setData(ArrayList<Data> data) {
        this.data = data;
    }
}
mybeans.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:annotation-config/>

    <context:component-scan
            base-package="com.app">
    </context:component-scan>

</beans>
你知道怎么解决这个问题吗?我试着用手连接豆子,但仍然得到同样的错误

编辑:根据请求,我的web.xml(位置:位于
src/main/webapp/web-INF/web.xml


显示数据
org.springframework.web.servlet.DispatcherServlet
1.
显示数据
/
和完整的数据获取程序类

package com.app.fetcher;

@Component
public class DataFetcher{

    private ArrayList<Data> data = new ArrayList<>()        

    public DataFetcher() {

    }

    @PostConstruct
    public void loadData(){
        //load data from external API and store it to data collection
    }

    //getters and setters
}
package com.app.fetcher;


import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;

@Component
public class DataFetcher {
    private final static String SERVER_STATUS_QUERY = "/api/wow/realm/status";

    private ArrayList<Data> data = new ArrayList<>();

    public DataFetcher() {

    }

    @PostConstruct
    private void init() {
        URL url = null;
        try {
            url = new URL("http://eu.battle.net" + SERVER_STATUS_QUERY);
            URLConnection connection = url.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

            String input;
            StringBuilder stringBuilder = new StringBuilder();

            while ((input = in.readLine()) != null) {
                stringBuilder.append(input);
            }

            in.close();
            parseData(stringBuilder.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    private void parseData(String json) {
        try {
            JSONObject obj = new JSONObject(json);

            JSONArray jsonArray = obj.getJSONArray("realms");
            for (int i = 0; i < jsonArray.length(); i++) {
                data.add(new Data(jsonArray.getJSONObject(i).getString("name"), jsonArray.getJSONObject(i).getString("type")));
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    public ArrayList<Data> getData() {
        return data;
    }

    public void setData(ArrayList<Data> data) {
        this.data = data;
    }
}
package com.app.fetcher;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入org.springframework.stereotype.Component;
导入javax.annotation.PostConstruct;
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStreamReader;
导入java.net.URL;
导入java.net.URLConnection;
导入java.util.ArrayList;
@组成部分
公共类数据获取程序{
私有最终静态字符串服务器\u STATUS\u QUERY=“/api/wow/realm/STATUS”;
private ArrayList data=new ArrayList();
公共数据获取程序(){
}
@施工后
私有void init(){
URL=null;
试一试{
url=新url(“http://eu.battle.net“+服务器状态查询);
URLConnection=url.openConnection();
BufferedReader in=新的BufferedReader(新的InputStreamReader(connection.getInputStream());
字符串输入;
StringBuilder StringBuilder=新的StringBuilder();
而((input=in.readLine())!=null){
stringBuilder.append(输入);
}
in.close();
parseData(stringBuilder.toString());
}捕获(IOE异常){
e、 printStackTrace();
}
}
私有void parseData(字符串json){
试一试{
JSONObject obj=新的JSONObject(json);
JSONArray JSONArray=obj.getJSONArray(“领域”);
for(int i=0;i
尝试将beans.xml移动到src/main/resources/WEB,但没有帮助。尝试将beans.xml移动到其他地方,但在部署和访问页面时仍会遇到相同的异常。如何配置您的webapp?你能给我们看看你的web.xml吗?我不认为这个问题是由于beans.xml文件的位置造成的,因为Spring能够识别
DataController.java
中的@Autowired注释。您能添加complete DataFetcher.java吗?@R4J在OP中添加了web.xml,还添加了complete DataFetcher。它轮询暴雪服务器的魔兽世界状态,并存储领域名称和领域类型。我正在使用它来解析JSON
package com.app.fetcher;


import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;

@Component
public class DataFetcher {
    private final static String SERVER_STATUS_QUERY = "/api/wow/realm/status";

    private ArrayList<Data> data = new ArrayList<>();

    public DataFetcher() {

    }

    @PostConstruct
    private void init() {
        URL url = null;
        try {
            url = new URL("http://eu.battle.net" + SERVER_STATUS_QUERY);
            URLConnection connection = url.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

            String input;
            StringBuilder stringBuilder = new StringBuilder();

            while ((input = in.readLine()) != null) {
                stringBuilder.append(input);
            }

            in.close();
            parseData(stringBuilder.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    private void parseData(String json) {
        try {
            JSONObject obj = new JSONObject(json);

            JSONArray jsonArray = obj.getJSONArray("realms");
            for (int i = 0; i < jsonArray.length(); i++) {
                data.add(new Data(jsonArray.getJSONObject(i).getString("name"), jsonArray.getJSONObject(i).getString("type")));
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    public ArrayList<Data> getData() {
        return data;
    }

    public void setData(ArrayList<Data> data) {
        this.data = data;
    }
}