将以下代码段添加到我的代码中:
Message message = PhaseInterceptorChain.getCurrentMessage();
HttpServletRequest request = (HttpServletRequest)message.get(AbstractHTTPDestination.HTTP_REQUEST);
request.getRemoteAddr();
创建了一种情况,我必须添加以下依赖项(cxf.version定义为2.7.1):
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
虽然我之前已经在我的pom.xml中有以下内容:
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
<type>jar</type>
<scope>runtime</scope>
</dependency>
如果我不添加以后的依赖项,项目将无法构建,抱怨“package org.apache.cxf.transport.http不存在”。
如果删除之前的版本(<scope>runtime</scope>
),项目将成功构建,但.war
将无法与ClassNotFoundException: org.apache.cxf.endpoint.AbstractEndpointFactory
一起部署。
为什么同一个pom.xml中需要出现2次相同的groupId / artifactId / version?
如何清理/整理我的pom.xml,以便此软件包仅列出一次?
答案 0 :(得分:1)
问题解决了。为了所有人的利益,我提供了解决方案。
我所做的就是删除明显的冗余是移动较早的(即<type>jar</type>
}),替换第二个并删除<scope>
行。因此,仅保留:
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
<type>jar</type>
</dependency>
但是进一步了解依赖列表。
依赖关系的顺序似乎很重要(如果您不知道,请更正)。