[ 
https://issues.apache.org/jira/browse/CXF-8340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17219432#comment-17219432
 ] 

olivier dufour commented on CXF-8340:
-------------------------------------

Hello, I am writing an extension for cxf with quarkus.
We have unit test for Java 8 and 11.
Native build failed but I have ever fixed many things. 
Limitation of native is that all reflection and proxy must be listed. And no 
code generation in run time. 
But extension can generate it during build time and can substitute method of 
cxf to load load previously generated class. Jni is not supported too. 


> Graalvm native image fails to run
> ---------------------------------
>
>                 Key: CXF-8340
>                 URL: https://issues.apache.org/jira/browse/CXF-8340
>             Project: CXF
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 3.3.7
>            Reporter: sendev
>            Assignee: Andriy Redko
>            Priority: Major
>              Labels: cxf,, graalvm, native-image
>
> Hello,
> My app is using spring boot 2.3.1 and CXF 3.3.7. I managed to create Graalvm 
> native image, now I am trying to fix the issues that is happening during 
> native image run. Currently I am encountering following issue. Looks like the 
> native image fails when tries to create bean for the soap service. Any help 
> would be appreciated. 
> I raised this issue with Spring GraalVM native community and they pointed the 
> issue to CXF. Hence I am reaching out here for help.
> [https://github.com/spring-projects-experimental/spring-graalvm-native/issues/273]
>  
> Here is the config method that creates the soap service
>  
> {code:java}
> @Bean("PublishingServiceClient")
>     public PublishingService getPublishingClient(Bus bus, SoapServiceConfig 
> soapServiceConfig) {
>         final JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
>         factory.setBus(bus);
>         factory.setServiceClass(PublishingService.class);
>         factory.setAddress(soapServiceConfig.getUrl());
>         factory.setServiceName(new QName(name));
>         final List<Feature> features = factory.getFeatures();
>         if(soapServiceConfig.getMaxNumberOfRetries() > 0) {
>             features.add(getFailoverFeature(soapServiceConfig));
>         }
>         return (PublishingService) factory.create();
>     }
>       
>       private Feature getFailoverFeature(SoapServiceConfig soapServiceConfig) 
> {
>         final RetryStrategy retryStrategy = new RetryStrategy();
>         
> retryStrategy.setMaxNumberOfRetries(soapServiceConfig.getMaxNumberOfRetries());
>         
> retryStrategy.setDelayBetweenRetries(soapServiceConfig.getDelayBetweenRetries());
>         final List<String> addressList = new LinkedList<>();
>         addressList.add(soapServiceConfig.getUrl());
>         retryStrategy.setAlternateAddresses(addressList);
>         final FailoverFeature failoverFeature = new FailoverFeature();
>         failoverFeature.setStrategy(retryStrategy);
>         return failoverFeature;
>     }
> {code}
> Here is error while running native image
> {code:java}
> [2020-09-08 15:43:52.112-0500] [APP]  INFO 23684 --- [main] 
> o.a.c.w.s.f.ReflectionServiceFactoryBean : Creating Service 
> {http://mywebservice.com/publish}PublishingServiceService from class 
> com.mywebservice.publish.PublishingService
> Fatal error reported via JNI: JVM_GetSystemPackage called:  Unimplemented
> Stacktrace Stage 2:
>   SP 00000000007ce680 IP 00007ff7749dbf93  [image code] 
> com.oracle.svm.core.code.IsolateEnterStub.JNIFunctions_FatalError_dea4272cf8e20ff701a0a73f7a6d5d75e3401653(IsolateEnterStub.java:0)
>   SP 00000000007ce7c0 IP 00007ff7766cc9f4  [image code] 
> java.lang.Package.getSystemPackage0(Package.java)
>   SP 00000000007ce820 IP 00007ff7766cc8bb  [image code] 
> java.lang.Package.getSystemPackage(Package.java:544)
>   SP 00000000007ce860 IP 00007ff7766bb44c  [image code] 
> java.lang.ClassLoader.getPackage(ClassLoader.java:1618)
>   SP 00000000007ce8b0 IP 00007ff7766bb38b  [image code] 
> java.lang.ClassLoader.getPackage(ClassLoader.java:1616)
>   SP 00000000007ce900 IP 00007ff7766bb38b  [image code] 
> java.lang.ClassLoader.getPackage(ClassLoader.java:1616)
>   SP 00000000007ce950 IP 00007ff7772a3d9b  [image code] 
> org.apache.cxf.common.util.ASMHelper$TypeHelperClassLoader.defineClass(ASMHelper.java:392)
>   SP 00000000007ce9b0 IP 00007ff7772a8ab3  [image code] 
> org.apache.cxf.common.util.ASMHelper.loadClass(ASMHelper.java:321)
>   SP 00000000007ce9f0 IP 00007ff7774f2827  [image code] 
> org.apache.cxf.jaxws.WrapperClassGenerator.generatePackageInfo(WrapperClassGenerator.java:267)
>   SP 00000000007cea50 IP 00007ff7774ef654  [image code] 
> org.apache.cxf.jaxws.WrapperClassGenerator.createWrapperClass(WrapperClassGenerator.java:169)
>   SP 00000000007ceb30 IP 00007ff7774f09be  [image code] 
> org.apache.cxf.jaxws.WrapperClassGenerator.generate(WrapperClassGenerator.java:122)
>   SP 00000000007ceb70 IP 00007ff77754cd2c  [image code] 
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.generatedWrapperBeanClass(JaxWsServiceFactoryBean.java:672)
>   SP 00000000007ceb90 IP 00007ff77754d3a9  [image code] 
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.getExtraClass(JaxWsServiceFactoryBean.java:642)
>   SP 00000000007cebf0 IP 00007ff777699076  [image code] 
> org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:463)
>   SP 00000000007cec80 IP 00007ff77754c131  [image code] 
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:693)
>   SP 00000000007ceca0 IP 00007ff7776b4182  [image code] 
> org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:529)
>   SP 00000000007cece0 IP 00007ff77769ba2b  [image code] 
> org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:262)
>   SP 00000000007ced10 IP 00007ff77754c2d1  [image code] 
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:199)
>   SP 00000000007ced40 IP 00007ff7772f55a8  [image code] 
> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:103)
>   SP 00000000007cedb0 IP 00007ff7772f9796  [image code] 
> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:91)
>   SP 00000000007cedf0 IP 00007ff7772fb02a  [image code] 
> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:159)
>   SP 00000000007cee40 IP 00007ff7774df366  [image code] 
> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:142)
>   SP 00000000007ceeb0 IP 00007ff7764dd302  [image code] 
> com.myapp.config.CxfConfig.gePublishingClient(CxfConfig.java:71)
>   SP 00000000007ceee0 IP 00007ff7750f7c24  [image code] 
> com.oracle.svm.reflect.CxfConfig_gePublishingClient_3d3d3b652097ee9557dd0cbed555428ec2c537c9.invoke(Unknown
>  Source)
>   SP 00000000007cef10 IP 00007ff7767445d9  [image code] 
> java.lang.reflect.Method.invoke(Method.java:498)
>   SP 00000000007cef40 IP 00007ff7788167ae  [image code] 
> org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
>   SP 00000000007cefb0 IP 00007ff7787e2546  [image code] 
> org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:650)
>   SP 00000000007ceff0 IP 00007ff7787e29dd  [image code] 
> org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:635)
>   SP 00000000007cf110 IP 00007ff7787b3c3e  [image code] 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1338)
>   SP 00000000007cf140 IP 00007ff7787acb88  [image code] 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177)
>   SP 00000000007cf1a0 IP 00007ff7787adbf3  [image code] 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557)
>   SP 00000000007cf220 IP 00007ff7787abf36  [image code] 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
>   SP 00000000007cf290 IP 00007ff7787cc0f9  [image code] 
> org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
>   SP 00000000007cf2c0 IP 00007ff7787bff4e  [image code] 
> org.springframework.beans.factory.support.AbstractBeanFactory$$Lambda$2c40051508af481f3e2b011afbd5800cdeae9fd3.getObject(Unknown
>  Source)
>   SP 00000000007cf2d0 IP 00007ff77880713b  [image code] 
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
>   SP 00000000007cf340 IP 00007ff7787c2fc5  [image code] 
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
>   SP 00000000007cf3d0 IP 00007ff77879b8a0  [image code] 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
>   SP 00000000007cf3d0 IP 00007ff77879b8a0  [image code] 
> org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
>   SP 00000000007cf3e0 IP 00007ff7787f53b8  [image code] 
> org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1304)
>   SP 00000000007cf460 IP 00007ff7787fffdc  [image code] 
> org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1224)
>   SP 00000000007cf4b0 IP 00007ff7787e63c9  [image code] 
> org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:884)
>   SP 00000000007cf520 IP 00007ff7787e022b  [image code] 
> org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788)
>   SP 00000000007cf640 IP 00007ff7787dbda9  [image code] 
> org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:227)
>   SP 00000000007cf730 IP 00007ff7787aad0f  [image code] 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1358)
>   SP 00000000007cf770 IP 00007ff7787acef0  [image code] 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1204)
>   SP 00000000007cf7d0 IP 00007ff7787adbf3  [image code] 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557)
>   SP 00000000007cf850 IP 00007ff7787abf36  [image code] 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
>   SP 00000000007cf8c0 IP 00007ff7787cc0f9  [image code] 
> org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
>   SP 00000000007cf8f0 IP 00007ff7787bff4e  [image code] 
> org.springframework.beans.factory.support.AbstractBeanFactory$$Lambda$2c40051508af481f3e2b011afbd5800cdeae9fd3.getObject(Unknown
>  Source)
>   SP 00000000007cf900 IP 00007ff77880713b  [image code] 
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
>   SP 00000000007cf970 IP 00007ff7787c2fc5  [image code] 
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
>   SP 00000000007cfa00 IP 00007ff7787fbcfa  [image code] 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
>   SP 00000000007cfa00 IP 00007ff7787fbcfa  [image code] 
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:893)
>   SP 00000000007cfa60 IP 00007ff778a709a1  [image code] 
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879)
>   SP 00000000007cfaa0 IP 00007ff778a7668a  [image code] 
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
>   SP 00000000007cfb00 IP 00007ff7789fc201  [image code] 
> org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
>   SP 00000000007cfb20 IP 00007ff77885b17b  [image code] 
> org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
>   SP 00000000007cfb20 IP 00007ff77885b17b  [image code] 
> org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
>   SP 00000000007cfb50 IP 00007ff77885b1e9  [image code] 
> org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
>   SP 00000000007cfb70 IP 00007ff77885b978  [image code] 
> org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
>   SP 00000000007cfbe0 IP 00007ff77885c433  [image code] 
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
>   SP 00000000007cfc00 IP 00007ff7764da85a  [image code] 
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
>   SP 00000000007cfc00 IP 00007ff7764da85a  [image code] 
> com.myapps.MainApplication.main(LocalAbeServiceApplication.java:23)
>   SP 00000000007cfc70 IP 00007ff7749e917f  [image code] 
> com.oracle.svm.core.JavaMainWrapper.runCore(JavaMainWrapper.java:149)
>   SP 00000000007cfc70 IP 00007ff7749e917f  [image code] 
> com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:184)
>   SP 00000000007cfc70 IP 00007ff7749e917f  [image code] 
> com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b(IsolateEnterStub.java:0)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to