2016-09-26 7 views
0

https wsdl usign CXF 클라이언트를 성공적으로 사용할 수있었습니다. 이제 Axis2 ADB 클라이언트를 사용하여 동일한 작업을 수행해야합니다. jdk 보안 lib를 인증서로 업데이트했습니다. 코드 usign http를 사용할 때 오류가 없습니다. https로 변경하면 오류가 발생합니다. 모든 종속 (생성 된) 클래스는 스텁 클래스 내부의 정적 클래스입니다. 나는 실종 된 수업을 보지 못한다.Axis2 ADB 클라이언트를 사용하여 https wsdl을 사용하십시오. 예외 : 표시기 필드 값에 대한 클래스가 누락되었습니다.

https wsdl을 사용하는 방법을 제안하십시오.

org.apache.axis2.AxisFault: javax.xml.bind.JAXBException 
- with linked exception: 
[org.xml.sax.SAXException: 
Exception Description: Missing class for indicator field value [ns1:ssssAuthenticateUserVOIn] of type [class java.lang.String]. 
Descriptor: XMLDescriptor(oracle.e1.bssv.JP55USRB.valueobject.SSSS_AuthenticateUserVOIn --> [DatabaseTable(ns0:SSSS_AuthenticateUserMethod)]) 
Exception [EclipseLink-43] (Eclipse Persistence Services - 2.5.2): org.eclipse.persistence.exceptions.DescriptorException 
Exception Description: Missing class for indicator field value [ns1:ssssAuthenticateUserVOIn] of type [class java.lang.String]. 
Descriptor: XMLDescriptor(oracle.e1.bssv.JP55USRB.valueobject.SSSS_AuthenticateUserVOIn --> [DatabaseTable(ns0:SSSS_AuthenticateUserMethod)])] 

스키마 :

<xsd:complexType name="ssss_AuthenticateUserVOIn"> 
<xsd:complexContent> 
<xsd:extension base="ns0:valueObject"> 
<xsd:sequence> 
<xsd:element name="description" type="xsd:string" minOccurs="0"/> 
<xsd:element name="enterpriseOnePassword" type="xsd:string" minOccurs="0"/> 
<xsd:element name="errorCode" type="xsd:string" minOccurs="0"/> 
<xsd:element name="scheduledUserRole" type="xsd:string" minOccurs="0"/> 
<xsd:element name="userID" type="xsd:string" minOccurs="0"/> 
</xsd:sequence> 
</xsd:extension> 
</xsd:complexContent> 
</xsd:complexType> 
<xsd:element name="SSSS_AuthenticateUserMethod" type="ns0:ssss_AuthenticateUserVOIn" nillable="true"/> 

답변

0

나는 해결책을 자신을 알아 냈어. 자바 코드와 soapui에 의해 생성 된 XML을 비교했다. Java 코드에서 그 코드가 이고 SOAPUI가 인 것으로 나타났습니다. 그래서 코드로 돌아가서 xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance "이 xsi : 종류 ="NS1 : ssssAuthenticateUserVOIn "를 추가하기 하였다 :

공개 공극 직렬화 (최종하는 javax.xml.namespace.QName parentQName, javax.xml.stream.XMLStreamWriter XmlWriter를 부울 serializeType) 방법 I이 블록 댓글

if ((namespacePrefix != null) 
        && (namespacePrefix.trim().length() > 0)) { 
       writeAttribute("xsi", 
         "http://www.w3.org/2001/XMLSchema-instance", "type", 
         namespacePrefix + ":ssssAuthenticateUserVOIn", 
         xmlWriter); 
      } else { 
       writeAttribute("xsi", 
         "http://www.w3.org/2001/XMLSchema-instance", "type", 
         "ssssAuthenticateUserVOIn", xmlWriter); 
      } 

심지어 HTTPS에 대한 프로토콜을 등록하거나 내가 가진 이후 신뢰 또는 키 스토어에 대한 모든 시스템 속성을 설정해야합니다 힘 : 그것은 일을 시작 이미 jssecacerts에 서버 인증서를 추가했습니다. 이 블록에 대한 주석 외에도 http에서 https 로의 유일한 변경 사항이 있습니다. 그게 전부 야. 나는 http wsdl에서 어떻게 작동하는지 궁금해. 희망 사항이 있으면 도움이되기를 바랍니다.