2017-05-19 1 views
1

SPring 3.2.11.RELEASE 및 CXF 2.7.18을 사용하고 있습니다. 나는 ... 내 메이븐 pom.xml 파일에서 웹 서비스와 통신 할 때 CXF가 maxElementCount를 무시하도록 할 수 있습니까?

<jaxws:client id="myWebServiceClient" 
      serviceClass="org.mainco.bsorg.MyWebService" 
      address="${wsdl.url}" 
    /> 

    <cxf:bus> 
      <cxf:properties> 
      <entry key="org.apache.cxf.stax.maxElementCount" value="10000000"/> 
      </cxf:properties> 
    </cxf:bus> 

, 나는이 플러그인에 대해 구성한 ..., 내 스프링 애플리케이션 컨텍스트 파일에서 웹 서비스와의 통신에 필요한 htis이

    <plugin> 
          <groupId>org.codehaus.mojo</groupId> 
          <artifactId>jaxws-maven-plugin</artifactId> 
          <version>2.4.1</version> 
          <executions> 
            <execution> 
              <goals> 
                <goal>wsimport</goal> 
              </goals> 
              <configuration> 
                <target>2.1</target> 
                <wsdlDirectory>${basedir}/src/wsdl</wsdlDirectory> 
                <sourceDestDir>${basedir}/src/main/java</sourceDestDir> 
                <packageName>org.mainco.bsorg</packageName> 
                <vmArgs> 
                  <vmArg>-Djavax.xml.accessExternalSchema=all</vmArg> 
                </vmArgs> 
              </configuration> 
            </execution> 
          </executions> 
        </plugin> 
내 웹 서비스에 대해 특정 호출을 실행했을 때부터 내 maxElementCount 값을 변경하는 경우

Unfrotunately 내가

07:16:26,088 WARNING [org.apache.cxf.phase.PhaseInterceptorChain] (org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-2) Interceptor for {http://mainco.org/bsorg/}MyWebServiceService#{http://mainco.org/bsorg/}searchOrgs has thrown exception, unwinding now: org.apache.cxf.interceptor.Fault: Unmarshalling Error: Maximum Number of Child Elements limit (50000) Exceeded 
     at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:907) [cxf-rt-databinding-jaxb-2.7.15.jar:2.7.15] 
     at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:711) [cxf-rt-databinding-jaxb-2.7.15.jar:2.7.15] 
     at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:172) [cxf-rt-databinding-jaxb-2.7.15.jar:2.7.15] 
     at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:107) [cxf-api-2.7.15.jar:2.7.15] 
     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) [cxf-api-2.7.15.jar:2.7.15] 
     at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:849) [cxf-api-2.7.15.jar:2.7.15] 
     at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1626) [cxf-rt-transports-http-2.7.15.jar:2.7.15] 
     at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1515) [cxf-rt-transports-http-2.7.15.jar:2.7.15] 
     at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1317) [cxf-rt-transports-http-2.7.15.jar:2.7.15] 
     at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) [cxf-api-2.7.15.jar:2.7.15] 
     at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:632) [cxf-rt-transports-http-2.7.15.jar:2.7.15] 
     at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) [cxf-api-2.7.15.jar:2.7.15] 
     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) [cxf-api-2.7.15.jar:2.7.15] 
     at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:572) [cxf-api-2.7.15.jar:2.7.15] 

...이 오류 "10000000"는 "1000000"나는 Maximu "와 위의 오류를 얻을 수 있습니다 m 자식 요소 수 제한 (1000000) 초과 "입니다. CXF가 maxElementCount 제한을 모두 무시할 수있는 방법이 있습니까? 그것은 최대 가치로 피들을해야하는 고통입니다. 스프링에서 웹 서비스를 구성하기 위해 기술을 사용하는 방법에 대해 열어 보았습니다.하지만 제안할만한 Maven 및 Spring 구성을 제공하십시오.

+0

구성에서 'maxElementCount'를 제외 시키거나 값을 -1로 설정해 보았습니까? – Veeram

답변

0

org.apache.cxf.stax.maxChildElements 속성을 설정해 보셨습니까?

maxChildElements 대신 잘못된 속성 maxElementCount을 무시하려고하는 것 같습니다.

문서 here을 참조하십시오.

관련 문제