복붙노트

[SPRING] JAX-WS 웹 서비스의 JSON 출력?

SPRING

JAX-WS 웹 서비스의 JSON 출력?

jax-ws soap-webservice가 xml 대신 json 형식을 출력 할 수 있습니까?

@Component
@WebService
public class HRSService {

    @WebMethod
    public String test(String value) {
        return value; //returned as XML. JSON possible?
    }
}

해결법

  1. ==============================

    1.https://jax-ws-commons.java.net/json/에 표시된 지시 사항을 따르면됩니다.

    https://jax-ws-commons.java.net/json/에 표시된 지시 사항을 따르면됩니다.

    합산:

    @BindingType(JSONBindingID.JSON_BINDING)
    public class MyService {
    
        public Book get(@WebParam(name="id") int id) {
            Book b = new Book();
            b.id = id;
            return b;
        }
    
        public static final class Book {
            public int id = 1;
            public String title = "Java";
        }
    }
    

    이 기능을 사용하려면 WEB-INF / lib에 jaxws-json.jar 만 있으면됩니다.

    나는 그것이 도움이되기를 바랍니다!

  2. ==============================

    2.늦었 어. 나는 최근 자바 프로그래밍으로 돌아 왔지만 앞으로이 페이지를 방문 할 사람들을 위해. JAXWS 메트로 문서의 예제는 javascript에서만 작동합니다. JSONObject와 함께 다음을 사용했습니다.

    늦었 어. 나는 최근 자바 프로그래밍으로 돌아 왔지만 앞으로이 페이지를 방문 할 사람들을 위해. JAXWS 메트로 문서의 예제는 javascript에서만 작동합니다. JSONObject와 함께 다음을 사용했습니다.

    @WebServiceProvider
    @ServiceMode(value = Service.Mode.MESSAGE)
    @BindingType(value=HTTPBinding.HTTP_BINDING)
    

    다음과 같이 Provider (DataSource)를 구현합니다.

    public class clazz implements Provider<DataSource>
    { ...
    
        @Override
        public DataSource invoke(DataSource arg)
        { 
            ...
            String emsg = "Request Parameter Error.";
            String sret = create_error_response(emsg);
    
            return getDataSource(sret);
        }
    }
    
    private DataSource getDataSource(String sret)
    {
        ByteArrayDataSource ds = new ByteArrayDataSource(sret.getBytes(), "application/json");
        return ds;
    }
    
    public String create_error_response(String msg)
    {
        JSONObject json = new JSONObject();
        json.put("success", new Boolean(false));
        json.put("message", msg);
        return json.toString();
    }
    
  3. from https://stackoverflow.com/questions/25660582/json-output-of-a-jax-ws-webservice by cc-by-sa and MIT license