CXF wsdl2java

2809 단어 자바
wsdl2java -frontend jaxws21 -p com.monica.bussiness.ticket.service -d d:/build http://localhost:8081/AWS/tktDataExportToKd?wsdl

wsdl2java -frontend jaxws21 -p com.cxf.esb.wsdl2java -d src -client OrderService.wsdl

1.apache-cxf-2.6.2 를 다운로드 하여 환경 변수 에 CXF 를 설정 합 니 다.HOME,PATH 에%CXF 가입HOME%\bin
2.cmd 를 입력 하여 제어 창 에 들 어가 wdl2java 를 입력 하여 설정 이 성공 적 인지 확인 합 니 다.
3.문 서 를 참고 하여 이 도구 의 구체 적 인 매개 변 수 를 보 는 용법
wsdl2java 사용법:
wsdl2java -p com -d src -all  aa.wsdl
-p  코드 를 생 성 할 패키지 이름 을 지정 합 니 다.
-d  코드 가 있 는 디 렉 터 리 를 지정 합 니 다.
-client 클 라 이언 트 테스트 웹 서비스 코드 생 성
-server 생 성 서버 시작 웹  service 코드
-impl 웹 서비스 구현 코드 생 성
-ant  build.xml 파일 생 성
-all 모든 시작 점 코드 생 성:types,service proxy,service interface,server mainline,client mainline,implementation object 및 Ant build.xml 파일.
일반적인 오류:
CXF Service(URL, QName, WebServiceFeature[]) getPort ... is undefined 
제목:Service(URL,QName,WebServiceFeature[])는 정의 되 지 않 았 습 니 다.
인터넷 에 자료 가 적 습 니 다.바로 이것 입 니 다.
이 유 는 CXF 가 자체 적 으로 가지 고 있 는 자바 x.xml.service 버 전이 jdk 의 자바 x.xml.service 보다 높 기 때문이다.
하나의 해결 방법 은:
wsdl2java 를 사용 할 때 인자-frontend jaxws 21 추가
하지만 코드 를 다시 만 들 면 getPort 에 오류 가 발생 할 수 있 습 니 다.
만약 당신 이 my eclipse 를 사용한다 면 시도 해 보 는 방법:
myeclipse JAVA EE 5 Libraries 를 지우 고잘못 보고 하지 않 았 을 거 야.
my eclipse 의 가방 로드 는 순서 가 있 습 니 다.프로젝트 의'classpath'를 보면 알 수 있 습 니 다.사실 우리 에 게 필요 한 것 은 CXF 가방 안에 다 있다.다만 myeclipse 가 시 작 될 때 기본적으로 javaee.jar 를 불 러 옵 니 다.
CXF wsdl2java 생 성 서비스 클 라 스 구조 기 오류 해결 방법
I'm marking this as "not a problem" as the generated code is correct per spec. CXF 2.3.2 is a JAX-WS 2.2 compliant implementation and thus must generate code compliant to the JAX-WS 2.2 specification which requires those constructors like that. HOWEVER, to compile them on Java 6, you will likely need to endorse the 2.2 jaxws-api jar (and likely the jaxb-api jar as well). See the 2.3 migration guide: http://cxf.apache.org/docs/23-migration-guide.html for some details about the endorsed stuff.
The alternative workaround, right now, is to delete the api jars from lib/endorsed. In that case, wsdl2java will detect that the 2.2 versions are not available/endorsed and will switch to generating 2.1 compliant code.
I also just added a new frontend (will be there for 2.3.3) to force 2.1 behavior. With 2.3.3, you'll be able to do "wsdl2java -frontend jaxws21" to tell it to use the JAX-WS 2.1 compliant frontend instead.
해결 방법:
Alternative workaround you recommended works great!
"wsdl2java -frontend jaxws21" sounds better to me. I think it will be an important new feature to CXF as not many organisations may have moved past Java6 and would like to have jaxws_2.1

좋은 웹페이지 즐겨찾기