使用maven-shade-plugin 打包 采用apache cxf的 jax-rs 可运行jar,runtime时 出现异常“
Caused by: org.apache.cxf.BusException: No binding factory for namespace http://xxxxx”,网上找了资料,终于发现原因:必须在pom.xml 的plugin 里添加cxf-buildtools 依赖包,同时要加入于cxf相关的“transformer”如下:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>1.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>## you name class name ##</mainClass> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.handlers</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.schemas</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/services/com.sun.tools.xjc.Plugin</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/cxf/cxf.extension</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer"> <resource>META-INF/extensions.xml</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer"> <resource>META-INF/cxf/extensions.xml</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/cxf/bus-extensions.txt</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer"> <resource>META-INF/cxf/bus-extensions.xml</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer"> <resource>META-INF/wsdl.plugin.xml</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer"> <resource>META-INF/tools.service.validator.xml</resource> </transformer> <transformer implementation="org.apache.cxf.maven.PluginTransformer"> <resource>META-INF/tools-plugin.xml</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer"> <resource>META-INF/cxf/java2wsbeans.xml</resource> </transformer> <transformer implementation="org.apache.cxf.maven.CXFAllTransformer" /> </transformers> <shadedArtifactAttached>true</shadedArtifactAttached> <shadedClassifierName>executable</shadedClassifierName> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-buildtools</artifactId> <version>2.2.12</version> <type>jar</type> <scope>compile</scope> </dependency> </dependencies> </plugin>
再次运行 mvn: clean install 待更新下载相关的cxf-buildtools jar 完毕后~即可 双击运行 打包好的jar,成功调用.....
原文出处:
http://stackoverflow.com/questions/6831954/how-to-package-an-apache-cxf-application-into-a-monolithic-jar-with-the-maven-s
相关推荐
<artifactId>maven-shade-plugin <version>3.1.0 <phase>package <goal>shade implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring....
apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-...
apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-...
apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-...
在Java编程中,`java.lang.ClassNotFoundException` 是一个常见的运行时异常,通常发生在尝试通过类加载器加载指定类时,但找不到对应的字节码文件。在这个特定的问题中,`ClassNotFoundException` 引发的原因是缺少...
在这个特定的场景中,异常堆栈跟踪显示了 `Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.Transformer`,这表明系统无法找到 `org.apache.commons.collections.Transformer` 类。...
在Java编程中,`java.lang.ClassNotFoundException`是一个常见的运行时异常,它表示JVM尝试加载一个类时,找不到对应的.class文件。在这个特定的错误中,我们看到的是`org.apache.commons.dbcp.BasicDataSource`,这...
org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration) 解决方案: 第一种方式 war项目 <groupId>org.apache....
在apache-maven-3.5.2/conf/setting.xml中加入以下配置即可解决 alimaven aliyun maven http://maven.aliyun.com/nexus/content/repositories/central/ central junit junit Address/ ...
apache-maven-3.8.8.zip压缩包内容: apache-maven-3.8.8-bin.tar.gz apache-maven-3.8.8-bin.zip apache-maven-3.8.8-src.tar.gz apache-maven-3.8.8-src.zip
apache-maven-3.0.4-bin.tar.gz apache-maven-3.0.4-bin.zip apache-maven-3.0.5-bin.tar.gz apache-maven-3.0.5-bin.zip apache-maven-3.1.0-bin.tar.gz apache-maven-3.1.0-bin.zip apache-maven-3.1.1-bin.tar.gz...
"apache-maven-3.9.0-bin.tar" 是Apache Maven 3.9.0版本的Linux二进制发行版,以tar归档格式提供。这个版本包含了运行Maven所需的所有文件,包括可执行脚本、库文件和文档。用户在Linux环境下,可以将此文件移动到...
在“apache-maven-3.9.6-bin”压缩包中,你会找到以下关键组件: 1. `bin` 目录:包含可执行脚本,如 `mvn` 和 `mvn.cmd`,它们分别用于Unix/Linux系统和Windows系统,用于运行Maven命令。 2. `lib` 目录:存储了...
每个阶段都可以通过特定的插件来执行,例如,`maven-compiler-plugin`用于编译源代码,`maven-surefire-plugin`负责运行单元测试。Maven通过使用Project Object Model (POM)文件来描述项目信息,包括依赖、构建配置...
在解压"apache-maven-3.9.0-bin.tar.gz"后,你会得到一个名为"apache-maven-3.9.0"的目录,其中包含以下核心组成部分: 1. **bin**:这个目录包含了可执行脚本,如`mvn`命令,用于在命令行中执行Maven操作。在...
首先,你需要下载`apache-maven-3.6.0`压缩包。这个压缩包包含了Maven运行所需的所有文件,包括bin目录下的可执行脚本,lib目录中的依赖库,以及conf目录下的配置文件如settings.xml。下载完成后,解压到你选择的...
apache-maven-3.6.1.zip分享给需要的同学 apache-maven-3.6.1.zip分享给需要的同学 apache-maven-3.6.1.zip分享给需要的同学 apache-maven-3.6.1.zip分享给需要的同学 apache-maven-3.6.1.zip分享给需要的同学apache...
Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project
在"apache-maven-3.8.1-bin.zip"这个压缩包中,您将找到Maven的可执行文件和相关资源,用于在您的计算机上安装和运行Maven。以下是一些关键知识点: 1. **Maven的组成**: - **bin目录**:包含Maven的可执行脚本,...
在Unix/Linux系统中,可以使用`tar -zxvf apache-maven-3.6.2-bin.tar.gz`命令来解压,而在Windows系统中,可以使用解压软件如7-Zip来完成这个操作。解压后,你会看到一个名为`apache-maven-3.6.2`的目录,其中包含...