Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-8419

Graal VM native image run fails

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • 3.4.2, 3.3.9
    • None
    • None
    • Unknown

    Description

      Hi,

      I am trying to follow the guide to create native image for CXF client that was referenced in the defect that I created earlier #8340 . My example is using
      JaxWsProxyFactoryBean to create client.

       

      I tried 3.3.9 version of CXF and I got following error while running native image 

       

      2021-02-09 17:30:11.322  INFO 5013 --- [           main] com.cxf.client.ClientApplication         : Starting ClientApplication using Java 1.8.0_282 on BGTMNWL-9123HKG with PID 5013 (/home/urajas4/cxf-client/build/client started by urajas4 in /home/urajas4/cxf-client/build)
      2021-02-09 17:30:11.322  INFO 5013 --- [           main] com.cxf.client.ClientApplication         : No active profile set, falling back to default profiles: default
      2021-02-09 17:30:11.385  INFO 5013 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8081 (http)
      Feb 09, 2021 5:30:11 PM org.apache.coyote.AbstractProtocol init
      INFO: Initializing ProtocolHandler ["http-nio-8081"]
      Feb 09, 2021 5:30:11 PM org.apache.catalina.core.StandardService startInternal
      INFO: Starting service [Tomcat]
      Feb 09, 2021 5:30:11 PM org.apache.catalina.core.StandardEngine startInternal
      INFO: Starting Servlet engine: [Apache Tomcat/9.0.41]
      Feb 09, 2021 5:30:11 PM org.apache.catalina.core.ApplicationContext log
      INFO: Initializing Spring embedded WebApplicationContext
      2021-02-09 17:30:11.394  INFO 5013 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 71 ms
      JVM_MaxObjectInspectionAge called:  Unimplemented
      Aborted (core dumped)
      

       

       

      Then I upgrade to CXF 3.4.2 and getting following error when running native image. The application runs fine as java application using CXF 3.4.2 or 3.3.9.

       

      2021-02-09 18:15:54.564 ERROR 8528 --- [           main] o.s.b.web.embedded.tomcat.TomcatStarter  : Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'org.apache.cxf.spring.boot.autoconfigure.CxfAutoConfiguration': Unsatisfied dependency expressed through field 'properties'; nested exception is org.springframework.boot.context.properties.ConfigurationPropertiesBindException: Error creating bean with name 'cxf-org.apache.cxf.spring.boot.autoconfigure.CxfProperties': Could not bind properties to 'CxfProperties' : prefix=cxf, ignoreInvalidFields=false, ignoreUnknownFields=true; nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'cxf' to org.apache.cxf.spring.boot.autoconfigure.CxfProperties
      Feb 09, 2021 6:15:54 PM org.apache.catalina.core.StandardService stopInternal
      INFO: Stopping service [Tomcat]
      2021-02-09 18:15:54.566  WARN 8528 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
      2021-02-09 18:15:54.567  INFO 8528 --- [           main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
      2021-02-09 18:15:54.567 ERROR 8528 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : ***************************
      APPLICATION FAILED TO START
      ***************************Description:Failed to bind properties under 'cxf' to org.apache.cxf.spring.boot.autoconfigure.CxfProperties:    Reason: org.hibernate.validator.internal.constraintvalidators.bv.NotNullValidator.<init>()Action:Update your application's configuration
      

       

      The steps I followed.

       Placed all the native image configuration from https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jaxws_graalvm_dynamic/client/src/main/resources/META-INF/native-image/org.apache.cxf.samples/jaxws_graalvm_dynamic_client into my sample project and customized the configurations.

      1. Using CXF 3.3.9/3.4.2 and as per the above confluence document those version of CXF should work with grail vm.
      2. Native image build was successful.
      3. Running native image is failing with above error.

       

      The client project is here https://github.com/sendev1/cxf-client -> I am trying to generate native image for this.

       The server project is here https://github.com/sendev1/cxf-server -> client will try to attempt the soap end point present in the server. I am not compiling native image for server. Just run this as spring boot project so that client talk to this server.

      If native image is running successfully for CXF client, then this REST end point should work

      http://localhost:8081/hello

      Attachments

        Activity

          People

            Unassigned Unassigned
            sendev1 sendev
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: