下午在搭建一个基于dubbo和spring的服务端项目。结果打包成jar后各种报错。

起初是因为idea的机制,导致META-INF下自己的Mainfest.mf总是莫名被覆盖,于是报找不到主函数。后来利用artfacts-》jar-》empty方式配置jar包,并把META-INF文件夹和mainfest.mf文件放在rescorces文件夹下解决了。

后来是dubbo已经停止维护,所以xds文件通过url已经拿不到了,查资料发现dubbo.jar里是带有xds文件的,spring怎么读不到呢?  原来又是idea的打包功能的坑,jar包下的META-INF目录下,有两个跟spring相关的文件:spring.handlers、spring.schemas,里面都只包含了一条配置,其他的xds配置都不见了!!

无奈,还是用maven吧,于是用 maven的shade打包插件来搞定

在stackoverflow上找到了答案:http://stackoverflow.com/questions/1937767/spring-3-0-unable-to-locate-spring-namespacehandler-for-xml-schema-namespace

下面的是pom.xml中关于打包部分的配置,可以看见配置了spring.handlers和srping.schemas并且直接指定main入口。

另外需要注意的是dubbo只能认META-INF/srping目录下的xml文件为spring配置文件。所以要自己建立一个META-INF/spring目录结构,把spring配置文件放进去,然后把这个目录结构再给扔到idea标记为resources的文件夹下,通常就是src/main/resources/META-INF/srping/applicationContent.xml 啦,这样一打包spring配置文件才能刚好满足dubbo的奇葩要求。

<build>

   <finalName>org.yueue.vita</finalName>   <resources>      <resource>         <directory>src/main/java</directory>         <includes>            <include>**/*.xml</include>         </includes>      </resource>      <resource>         <directory>src/main/resources</directory>         <includes>            <include>**/*.xml</include>            <include>**/*.properties</include>         </includes>      </resource>   </resources>   <plugins>      <plugin>         <groupId>org.apache.maven.plugins</groupId>         <artifactId>maven-shade-plugin</artifactId>         <version> 1.7.1</version>         <executions>            <execution>               <phase>package</phase>               <goals>                  <goal>shade</goal>               </goals>               <configuration>                  <transformers>                     <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.ManifestResourceTransformer">                        <mainClass>com.alibaba.dubbo.container.Main</mainClass>                     </transformer>                  </transformers>               </configuration>            </execution>         </executions>      </plugin>   </plugins></build>

被IDEA的打包功能打败了:dubbo服务端打包注意事项的更多相关文章

  1. dubbo服务端,dubbo客户端,注册中心(zk)之间的心跳

    dubbo客户端和dubbo服务端之间存在心跳,由dubbo客户端主动发起,可参见dubbo源码 HeartbeatTask. dubbo服务端和注册中心(zk)存在心跳,由dubbo服务端发起,这是 ...

  2. vue服务端打包及自动部署

    上次给CI环境搭建好了,这次写了一个脚本用于服务端打包及部署使用,解决了前端需要频繁打包的问题,即时将代码推到工程库,服务端自动打包作发布,然后测试人员即时测试,尽早发现问题. 发布原理: 我没有通过 ...

  3. dubbo服务端响应超时错误一例记录

    错误描述: Portlet J2AppsPortlet::QuickStartPortlet not available: Waiting server-side response timeout. ...

  4. 源码分析--dubbo服务端暴露

    服务暴露的入口方法是 ServiceBean 的 onApplicationEvent.onApplicationEvent 是一个事件响应方法,该方法会在收到 Spring 上下文刷新事件后执行服务 ...

  5. Dubbo服务端结合maven打jar包

    <build>        <finalName>odao-weixin-user</finalName>        <resources>   ...

  6. Visual Studio 2015 Bowser Link的功能不停的向服务端发送请求

    Visual Studio 2015新建的mvc项目 默认在每个视图上生成一些JavaScript脚本

  7. 监控与管理dubbo服务

    Dubbo是阿里多年前开源的一套服务治理框架,在众多互联网企业里应用广泛.本文介绍了一些如何监控与管理dubbo服务.使用的工具与<dubbox 的各种管理和监管>大致相同,本文更侧重于命 ...

  8. Python服务Debian打包新思路

    此文已由作者张耕源授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Debian 打包一直是比较冷僻的技术,大部分同学都不会接触到它. 但是我们 Debian 服务器上安装的各 ...

  9. Spring Cloud Alibaba(四)实现Dubbo服务消费

    本项目演示如何使用 Spring Cloud Alibaba 完成 Dubbo 的RPC调用. Spring Cloud与Dubbo Spring Cloud是一套完整的微服务架构方案 Dubbo是国 ...

随机推荐

  1. 40个Java集合面试问题和答案【上】【转载】

    1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用,Java1 ...

  2. C语言:Day1~Day4

    点击右键查看原图

  3. ReactiveCocoa入门教程——第二部分(转)

    ReactiveCocoa是一个框架,它能让你在iOS应用中使用函数响应式编程(FRP)技术.在本系列教程的第一部分中,你学到了如何将标准的动作与事件处理逻辑替换为发送事件流的信号.你还学到了如何转换 ...

  4. OpenJudge/Poj 1316 Self Numbers

    1.链接地址: http://poj.org/problem?id=1316 http://bailian.openjudge.cn/practice/1316 2.题目: 总时间限制: 1000ms ...

  5. ExtJs 添加员工 实例 ---- 锚点布局 anchor 可自动伸缩

    代码如下: <script type="text/javascript"> Ext.onReady(function () { // 创建一条记录行, job 为 di ...

  6. C#生成二维码名片

    摘自<31天学会CRM项目开发<C#编程入门级项目实战>> 本例将使用ThoughtWorks.QRCode类库生成二维码名片.正式编码前,先了解一下什么是vCard?它是一种 ...

  7. 重力加速度陀螺仪传感器MPU-6050(一)

    MPU-60X0 对陀螺仪和加速度计分别用了三个16 位的ADC,将其测量的模拟量转化 为可输出的数字量.为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为±250,±50 ...

  8. AVAudioPlayer 播放音频

    play方法 实现立即播放音频功能 pause方法 可以对播放暂停 stop方法 可以停止播放行为 注: pause & stop的不同之处: 调用stop方法会撤销调用prepareToPl ...

  9. IE 6/7下自赋值导致 overflow 溢出

    情景是要限制一个textarea的最大输入字数(100字,  这字数限制也太少了点吧,不大气) 由于限制输入后需要允许 回退,全选等功能键,故放弃keyup, keydown组合 选用property ...

  10. 一步步学习ASP.NET MVC3 (12)——FileResult

    请注明转载地址:http://www.cnblogs.com/arhat 忙了两天,本来老魏昨天就应该写出新的文章,但是由于昨天雨夹雪而且加上昨天晚上加了班,到家都没饭吃了,一看时间都9点了,什么饭店 ...