2010-06-16 2 views
3

해당 패키지 그룹에 동일한 Java WebServices API & IMPL 클래스가 있으며 패키지 이름 만 다릅니다.WS Libs : com.sun.xml vs javax.xml

내 코드에서 사용해야들
  • http://mvnrepository.com/artifact/com.sun.xml
    • http://mvnrepository.com/artifact/javax.xml
    • ? Java 규약에 따라 NON-com.sun. *을 선호하지만 com.sun. *의 구현을 사용하는 종속성 (예 : Spring) * 또는 javax.xml에서 구현 패키지를 찾을 수 없습니다.

      Does 누구든지 이것에 대한 경험이 있습니까?

    답변

    2

    javax.xml 패키지를 사용하십시오. com.sun 패키지는 공용 Java API의 일부가 아니며 Java 버전간에 변경되거나 Sun의 Java 구현 이외의 다른 사람을 사용하는 경우에도 존재하지 않습니다. Why Developers Should Not Write Programs That Call 'sun' Packages

    나는 당신이하려는 정확히 알 수는 없지만, 일반적으로 직접 구현 패키지를 처리 ​​할 필요가 없습니다 :

    을 참조하십시오. 일반적으로 XML 파서와 같은 인스턴스를 생성하는 팩토리 클래스와 메소드가 있으며, 프로그램은 배후에서 어떤 구현이 사용되는지 알 필요가 없습니다. 예를 들어 SAX 파서를 얻으려면 다음을 수행하십시오.

    import javax.xml.parsers.*; 
    
    SAXParserFactory factory = SAXParserFactory.newInstance(); 
    SAXParser parser = factory.newSAXParser(); 
    
    +0

    네, 맞습니다. 예를 들어 Spring WS를 사용하고 있습니다. MessageFactory, 그래서 MessageFactory.newInstance() 또는 MessageFactory.newInstance ("Protocol")을 전달할 수 있습니다. 아파치 CXF는 예를 들어 impl의 없이는 일하고 싶지 않다. saaj-impl과 com.sun에서만 온 다른 것들. * – Zilvinas