Java Jackson未处理的异常?

Java Jackson未处理的异常?,java,android,jackson,google-cloud-messaging,unhandled-exception,Java,Android,Jackson,Google Cloud Messaging,Unhandled Exception,我是android编程新手,我一直在关注这一点 创建GCM服务器程序。然而,我遇到了一个令人沮丧的错误,非常感谢任何帮助 这是我的POST2GCM课程: import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.

我是android编程新手,我一直在关注这一点 创建GCM服务器程序。然而,我遇到了一个令人沮丧的错误,非常感谢任何帮助

这是我的POST2GCM课程:

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import com.fasterxml.jackson.databind.ObjectMapper;


public class POST2GCM extends Content {

private static final long serialVersionUID = 1L;

public static void post(String apiKey, Content content){

        try{

        // 1. URL
        URL url = new URL("https://android.googleapis.com/gcm/send");

        // 2. Open connection
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();

        // 3. Specify POST method
        conn.setRequestMethod("POST");

        // 4. Set the headers
        conn.setRequestProperty("Content-Type", "application/json");
        conn.setRequestProperty("Authorization", "key="+apiKey);

        conn.setDoOutput(true);

            // 5. Add JSON data into POST request body

            //`5.1 Use Jackson object mapper to convert Contnet object into JSON
            ObjectMapper mapper = new ObjectMapper();

            // 5.2 Get connection output stream
            DataOutputStream wr = new DataOutputStream(conn.getOutputStream());

            // 5.3 Copy Content "JSON" into
            mapper.writeValue(wr, content);

            // 5.4 Send the request
            wr.flush();

            // 5.5 close
            wr.close();

            // 6. Get the response
            int responseCode = conn.getResponseCode();
            System.out.println("\nSending 'POST' request to URL : " + url);
            System.out.println("Response Code : " + responseCode);

            BufferedReader in = new BufferedReader(
                    new InputStreamReader(conn.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();

            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();

            // 7. Print result
            System.out.println(response.toString());

            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
}
我已经包含了“jackson-databind-2.5.1.jar”文件,但是我得到了错误:

未处理的异常:com.fasterxml.jackson.databind.JsonMappingException

在线
mapper.writeValue(wr,content)

导致此异常的原因是什么?如何修复它?

是一个通用数据绑定包,可用于流式API(jackson core)实现。这就是为什么需要添加并捕获3个异常。方法抛出
IOException
JsonGenerationException
JsonMappingException

try {
    mapper.writeValue(wr, content);
} catch (JsonMappingException e) {
    e.printStackTrace();
} catch (JsonGenerationException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

希望它对您有用。

如在它周围添加一个尝试捕获?当我这样做的时候,我得到了一个不兼容类型错误,上面写着:Required:java.lang.Throwable-Found:com.fasterxml.jackson.databind.JsonMappingException谢谢你的帮助,但是我仍然得到了“JsonMappingException”的一个不兼容类型错误。你添加了jackson内核吗?对不起,我是新手,我只知道如何添加JAR,但jackson core看起来像一个项目。不,你也可以为
jackson core
安装JAR。这会解决你的问题!!