2

我有一个问题,我花了 5 天没有解决它:执行mvn exec:java时无法正确解析配置参数,抛出以下错误:

"Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.1:java (default-cli) on project poll-translator: An exception occured while executing the Java class. null: InvocationTargetException: Error creating bean with name 'serviceLocator' defined in class path resource [META-INF/dsol/dsol.xml]: Cannot resolve reference to bean 'dsol-service-proxy' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dsol-service-proxy' defined in class path resource [META-INF/dsol/dsol.xml]: Instantiation of bean failed; nested exception is net.sf.cglib.core.CodeGenerationException: java.lang.NullPointerException-->null -> [Help 1]"

这是使用的 POM 配置文件(使用Apache Maven 3.0.4)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>org.dsol</groupId>
    <artifactId>dsol-parent</artifactId>
    <version>1-SNAPSHOT</version>
    <relativePath>../dsol/dsol-parent/pom.xml</relativePath>
</parent>

<groupId>org.dsol.project</groupId>
<artifactId>poll-translator</artifactId>
<version>0.1-SNAPSHOT</version>

<properties>
    <dsol.version>0.1-SNAPSHOT</dsol.version>
</properties>

<repositories>
    <repository>
        <id>dsol.internal</id>
        <url>http://maven.dsol-lang.net:8080/archiva/repository/internal/</url>
    </repository>
    <repository>
        <id>dsol.snapshots</id>
        <url>http://maven.dsol-lang.net:8080/archiva/repository/snapshots/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.dsol</groupId>
        <artifactId>dsol-interpreter</artifactId>
        <version>${dsol.version}</version>
    </dependency>
    <dependency>
        <groupId>org.dsol</groupId>
        <artifactId>dsol-default-planner-plugin-impl</artifactId>
        <version>${dsol.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http-jetty</artifactId>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>org.dsol.engine.DSOLServer</mainClass>
            </configuration>
        </plugin>
        <plugin>
            <groupId>com.thoughtworks.paranamer</groupId>
            <artifactId>paranamer-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>run</id>  <!-- id is optional -->
                    <configuration>
                        <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
                        <outputDirectory>${project.build.outputDirectory}</outputDirectory>
                    </configuration>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <pluginManagement>
        <plugins>
            <!--This plugin's configuration is used to store Eclipse m2e settings 
                only. It has no influence on the Maven build itself. -->
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>
                                        com.thoughtworks.paranamer
                                    </groupId>
                                    <artifactId>
                                        paranamer-maven-plugin
                                    </artifactId>
                                    <versionRange>
                                        [2.3,)
                                    </versionRange>
                                    <goals>
                                        <goal>generate</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute />
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

我不知道问题出在哪里,我该如何解决!你能帮我吗?

问候,萨娜。

4

2 回答 2

1

问题在于您的弹簧配置,而不是您的 Maven 配置。在您的情况下,当 spring 尝试创建dsol-service-proxy对象时,它的构造函数需要 serviceLocator它反过来创建serviceLocator并且 spring 在创建您的serviceLocator. 检查您的dsol.xml并确保serviceLocator配置正确。

于 2012-11-25T12:59:10.583 回答
0

Another possible solution is that if you have something like this <argument>${env.ANDROID_HOME}/build-tools/android-4.2.2/lib/dx.jar</argument> , consider adding ANDROID_HOME to environment path variables.

于 2013-08-12T11:47:07.000 回答