【问题标题】:GraalVM XML IssueGraalVM XML 问题
【发布时间】:2020-12-26 11:26:23
【问题描述】:

我正在尝试为 SpringBoot 2.4.x 应用程序构建 GraalVM 本机映像 20.3.0 / JDK 11。

我关注了这个https://github.com/spring-projects-experimental/spring-graalvm-native/blob/master/spring-graalvm-native-docs/src/main/asciidoc/getting-started-native-image.adoc#getting-started-with-native-image-maven-plugin

我在 pom.xml 中添加了这个依赖:

<dependency>
    <groupId>org.springframework.experimental</groupId>
    <artifactId>spring-graalvm-native</artifactId>
    <version>0.8.5</version>
</dependency>

还有这个简介:

<profile>
            <id>native</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.graalvm.nativeimage</groupId>
                        <artifactId>native-image-maven-plugin</artifactId>
                        <version>20.3.0</version>
                        <configuration>
                            <mainClass>com.acuity.cloud.uniform.Application</mainClass>
                            <buildArgs>-Dspring.native.remove-yaml-support=true  -Dspring.spel.ignore=true
                                --trace-class-initialization=org.apache.commons.logging.LogFactory
                                --initialize-at-build-time=org.apache.commons.logging.LogFactory</buildArgs>
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>native-image</goal>
                                </goals>
                                <phase>package</phase>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-maven-plugin</artifactId>
                    </plugin>
                </plugins>
            </build>
        </profile>

图像构建结束时没有错误,但是当我运行它时,我得到了这个:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'annotationActionEndpointMapping' defined in class path resource [org/springframework/ws/config/annotation/DelegatingWsConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.ws.soap.addressing.server.AnnotationActionEndpointMapping]: Factory method 'annotationActionEndpointMapping' threw exception; nested exception is org.springframework.xml.xpath.XPathParseException: Could not compile [normalize-space(wsa:To)] to a XPathExpression: javax.xml.transform.TransformerException: com.sun.org.apache.xpath.internal.functions.FuncNormalizeSpace.<init>(); nested exception is javax.xml.xpath.XPathExpressionException: javax.xml.transform.TransformerException: com.sun.org.apache.xpath.internal.functions.FuncNormalizeSpace.<init>()
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658) ~[na:na]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:486) ~[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:213) ~[na:na]
    at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:232) ~[na:na]
    at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:767) ~[na:na]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:572) ~[na:na]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) ~[na:na]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:767) ~[com.acuity.cloud.uniform.application:2.4.1]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) ~[com.acuity.cloud.uniform.application:2.4.1]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:426) ~[com.acuity.cloud.uniform.application:2.4.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:326) ~[com.acuity.cloud.uniform.application:2.4.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1309) ~[com.acuity.cloud.uniform.application:2.4.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1298) ~[com.acuity.cloud.uniform.application:2.4.1]
    at com.acuity.cloud.uniform.Application.main(Application.java:14) ~[com.acuity.cloud.uniform.application:0.0.1-SNAPSHOT]
    at java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
    at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[na:na]
    at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:519) ~[na:na]
    at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192) ~[na:na]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.ws.soap.addressing.server.AnnotationActionEndpointMapping]: Factory method 'annotationActionEndpointMapping' threw exception; nested exception is org.springframework.xml.xpath.XPathParseException: Could not compile [normalize-space(wsa:To)] to a XPathExpression: javax.xml.transform.TransformerException: com.sun.org.apache.xpath.internal.functions.FuncNormalizeSpace.<init>(); nested exception is javax.xml.xpath.XPathExpressionException: javax.xml.transform.TransformerException: com.sun.org.apache.xpath.internal.functions.FuncNormalizeSpace.<init>()
    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]
    ... 24 common frames omitted
Caused by: org.springframework.xml.xpath.XPathParseException: Could not compile [normalize-space(wsa:To)] to a XPathExpression: javax.xml.transform.TransformerException: com.sun.org.apache.xpath.internal.functions.FuncNormalizeSpace.<init>(); nested exception is javax.xml.xpath.XPathExpressionException: javax.xml.transform.TransformerException: com.sun.org.apache.xpath.internal.functions.FuncNormalizeSpace.<init>()
    at org.springframework.xml.xpath.Jaxp13XPathExpressionFactory.createXPathExpression(Jaxp13XPathExpressionFactory.java:84) ~[na:na]
    at org.springframework.xml.xpath.XPathExpressionFactory.createXPathExpression(XPathExpressionFactory.java:73) ~[na:na]
    at org.springframework.ws.soap.addressing.version.AbstractAddressingVersion.createNormalizedExpression(AbstractAddressingVersion.java:117) ~[na:na]
    at org.springframework.ws.soap.addressing.version.AbstractAddressingVersion.<init>(AbstractAddressingVersion.java:89) ~[na:na]
    at org.springframework.ws.soap.addressing.version.Addressing200408.<init>(Addressing200408.java:36) ~[na:na]
    at org.springframework.ws.soap.addressing.server.AbstractAddressingEndpointMapping.initDefaultStrategies(AbstractAddressingEndpointMapping.java:107) ~[na:na]
    at org.springframework.ws.soap.addressing.server.AbstractAddressingEndpointMapping.<init>(AbstractAddressingEndpointMapping.java:98) ~[na:na]
    at org.springframework.ws.soap.addressing.server.AbstractActionEndpointMapping.<init>(AbstractActionEndpointMapping.java:38) ~[na:na]
    at org.springframework.ws.soap.addressing.server.AbstractActionMethodEndpointMapping.<init>(AbstractActionMethodEndpointMapping.java:34) ~[na:na]
    at org.springframework.ws.soap.addressing.server.AnnotationActionEndpointMapping.<init>(AnnotationActionEndpointMapping.java:60) ~[na:na]
    at org.springframework.ws.config.annotation.WsConfigurationSupport.annotationActionEndpointMapping(WsConfigurationSupport.java:120) ~[com.acuity.cloud.uniform.application:na]
    at java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[na:na]
    ... 25 common frames omitted
Caused by: javax.xml.xpath.XPathExpressionException: javax.xml.transform.TransformerException: com.sun.org.apache.xpath.internal.functions.FuncNormalizeSpace.<init>()
    at com.sun.org.apache.xpath.internal.jaxp.XPathImpl.compile(XPathImpl.java:170) ~[na:na]
    at org.springframework.xml.xpath.Jaxp13XPathExpressionFactory.createXPathExpression(Jaxp13XPathExpressionFactory.java:79) ~[na:na]
    ... 37 common frames omitted
Caused by: javax.xml.transform.TransformerException: com.sun.org.apache.xpath.internal.functions.FuncNormalizeSpace.<init>()
    at com.sun.org.apache.xpath.internal.compiler.FunctionTable.getFunction(FunctionTable.java:353) ~[na:na]
    at com.sun.org.apache.xpath.internal.compiler.Compiler.compileFunction(Compiler.java:1060) ~[na:na]
    at com.sun.org.apache.xpath.internal.compiler.Compiler.compile(Compiler.java:204) ~[na:na]
    at com.sun.org.apache.xpath.internal.compiler.Compiler.compile(Compiler.java:152) ~[na:na]
    at com.sun.org.apache.xpath.internal.compiler.Compiler.compileExpression(Compiler.java:126) ~[na:na]
    at com.sun.org.apache.xpath.internal.XPath.<init>(XPath.java:187) ~[na:na]
    at com.sun.org.apache.xpath.internal.XPath.<init>(XPath.java:268) ~[na:na]
    at com.sun.org.apache.xpath.internal.jaxp.XPathImpl.compile(XPathImpl.java:162) ~[na:na]
    ... 38 common frames omitted

【问题讨论】:

    标签: java spring-boot graalvm


    【解决方案1】:

    将具有以下条目的 reflect-config.json 文件添加到 META-INF/native-image 并使用以下内容让我克服了这个错误并进入了其他错误 :-)

    [
      {
        "name" : "com.sun.org.apache.xpath.internal.functions.FuncNormalizeSpace",
        "methods" : [{"name":"<init>","parameterTypes":[] }]
      }
    ]
    

    【讨论】:

      猜你喜欢
      • 2022-01-26
      • 2020-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-29
      • 2021-01-30
      • 2011-08-07
      • 2011-11-05
      相关资源
      最近更新 更多