2015-04-13 2 views
-2

Я использую websphere v9beta (поддерживающий JAX-RS 2.0) для обеспечения спокойствия. У меня есть следующий код.Почему я не могу использовать org.json.JSONObject для замены com.ibm.json.java.JSONObject?

@GET 
@Path("/getJson1") 
@Produces(MediaType.APPLICATION_JSON) 
public JSONObject getJSON1() { 
    String input = "This is input"; 
    String output = "This is output"; 
    JSONObject outputJsonObj = new JSONObject(); 
    outputJsonObj.put("input", input); 
    outputJsonObj.put("output", output); 
    return outputJsonObj; 
} 

Если я использую "импорт com.ibm.json.java.JSONObject", он работает нормально. Но если я использую «import org.json.JSONObject» для реализации Json. Я получил следующую ошибку.

[ERROR] Problem with writing the data, class org.json.JSONObject, ContentType: application/json 
[WARNING] Interceptor for HelloResource1 has thrown exception, unwinding now 
No serializer found for class org.json.JSONObject and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)) 

Я думаю org.json является более общим, но почему я не могу relace com.ibm.json на WebSphere?

+0

Почему я не могу использовать кувалду вместо сковороды, geez? :) – meskobalazs

ответ

0

Это два совершенно разных класса из разных библиотек. Вы должны прочитать соответствующую документацию и убедиться, что используете нужную библиотеку для задачи, которую хотите выполнить.

+0

com.ibm.json.java.JSONObject встроен в WebSphere, поэтому я могу использовать его напрямую. Но я хочу сделать программу более общей. Поэтому я хочу использовать org.json. Я не думаю, что они разные классы, потому что они должны поддерживать спецификацию Java EE. Поэтому я думаю, что они заменены друг на друга. – user3376741

Смежные вопросы