[
https://issues.apache.org/jira/browse/CXF-8419?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17283426#comment-17283426
]
sendev commented on CXF-8419:
-----------------------------
We were able get around the `JVM_MaxObjectInspectionAge` issue by passing the
value
-Dorg.apache.cxf.JDKBugHacks.gcRequestLatency=true while running native image.
Now getting following issue
{code:java}
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'endpoint' defined in class path resource
[com/cxf/server/ApplicationConfig.class]: Bean instantiation via factory method
failed; nested exception is
org.springframework.beans.BeanInstantiationException: Failed to instantiate
[javax.xml.ws.Endpoint]: Factory method 'endpoint' threw exception; nested
exception is java.lang.NoSuchMethodError:
com.sun.xml.bind.v2.schemagen.xmlschema.Schema._attribute(javax.xml.namespace.QName,
java.lang.Object)
at
org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658)
~[na:na]
at
org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638)
~[na:na]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336)
~[na:na]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1179)
~[na:na]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:571)
~[na:na]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:531)
~[na:na]
at
org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
~[na:na]
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
~[na:na]
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
~[na:na]
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
~[na:na]
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944)
~[na:na]
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:923)
~[server:5.3.3]
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:588)
~[server:5.3.3]
at
org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144)
~[server:2.4.2]
at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:767)
[server:2.4.2]
at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)
[server:2.4.2]
at
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:426)
[server:2.4.2]
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:326)
[server:2.4.2]
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1311)
[server:2.4.2]
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1300)
[server:2.4.2]
at com.cxf.server.ServerApplication.main(ServerApplication.java:10)
[server:na]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to
instantiate [javax.xml.ws.Endpoint]: Factory method 'endpoint' threw exception;
nested exception is java.lang.NoSuchMethodError:
com.sun.xml.bind.v2.schemagen.xmlschema.Schema._attribute(javax.xml.namespace.QName,
java.lang.Object)
at
org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
~[na:na]
at
org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
~[na:na]
... 20 common frames omitted
Caused by: java.lang.NoSuchMethodError:
com.sun.xml.bind.v2.schemagen.xmlschema.Schema._attribute(javax.xml.namespace.QName,
java.lang.Object)
at com.sun.proxy.$Proxy264.<clinit>(Unknown Source) ~[na:na]
at
com.oracle.svm.core.classinitialization.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:375)
~[na:na]
at
com.oracle.svm.core.classinitialization.ClassInitializationInfo.initialize(ClassInitializationInfo.java:295)
~[na:na]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
~[na:na]
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:739) ~[na:na]
at com.sun.xml.txw2.ContainerElement._cast(ContainerElement.java:338)
~[na:na]
at com.sun.xml.txw2.TXW.create(TXW.java:80) ~[na:na]
at
com.sun.xml.bind.v2.schemagen.XmlSchemaGenerator$Namespace.writeTo(XmlSchemaGenerator.java:608)
~[na:na]
at
com.sun.xml.bind.v2.schemagen.XmlSchemaGenerator$Namespace.access$800(XmlSchemaGenerator.java:479)
~[na:na]
at
com.sun.xml.bind.v2.schemagen.XmlSchemaGenerator.write(XmlSchemaGenerator.java:461)
~[na:na]
at
com.sun.xml.bind.v2.runtime.JAXBContextImpl.generateSchema(JAXBContextImpl.java:799)
~[server:na]
at
org.apache.cxf.common.jaxb.JAXBUtils.generateJaxbSchemas(JAXBUtils.java:810)
~[na:na]
at
org.apache.cxf.jaxb.JAXBDataBinding.generateJaxbSchemas(JAXBDataBinding.java:468)
~[server:na]
at
org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:385)
~[server:na]
at
org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86)
~[na:na]
at
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:469)
~[na:na]
at
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:693)
~[na:na]
at
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:529)
~[na:na]
at
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:262)
~[na:na]
at
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:199)
~[na:na]
at
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:103)
~[na:na]
at
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:168)
~[server:na]
at
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211)
~[server:na]
at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:460)
~[server:na]
at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:338)
~[server:na]
at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:255)
~[server:na]
at com.cxf.server.ApplicationConfig.endpoint(ApplicationConfig.java:48)
~[server:na]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:na]
at
org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
~[na:na]
... 21 common frames omitted
{code}
[~dufoli] could you please take a look at this one and give me your
suggestions. Thank you
> Graal VM native image run fails
> -------------------------------
>
> Key: CXF-8419
> URL: https://issues.apache.org/jira/browse/CXF-8419
> Project: CXF
> Issue Type: Bug
> Affects Versions: 3.4.2, 3.3.9
> Reporter: sendev
> Priority: Major
> Labels: graalvm, spring-boot
>
> 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
>
> {code:java}
> 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)
> {code}
>
>
> 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.
>
> {code:java}
> 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
> {code}
>
> 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.
> # Using CXF 3.3.9/3.4.2 and as per the above confluence document those
> version of CXF should work with grail vm.
> # Native image build was successful.
> # 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
--
This message was sent by Atlassian Jira
(v8.3.4#803005)