关于华为smproxy_smgp.jar包的Cfg加载InfoX配置信息报java.net.MalformedURLException: no protocol:
2016-05-26 09:58
519 查看
第一次写博文,写的不好请见谅。
昨天遇到这个问题,搞了一个下午都没有搞定,截取部分主要代码,如下:
String file=SMSender.class.getResource("/configsend.xml").getPath();
this.config = new Cfg(file).getArgs("SMGPConnect");
说明:这个问题在linux环境下是没有问题的
报错如下:
09:57:36,959 INFO [STDOUT] 09:57:36,956 ERROR [SMSender] Read gateway configuration error: java.net.MalformedURLException: no protocol: /F:/jboss-snsp/server/default/deploy/IdopSms.war/WEB-INF/classes/configsend.xml
java.net.MalformedURLException: no protocol: /F:/jboss-snsp/server/default/deploy/IdopSms.war/WEB-INF/classes/configsend.xml
at java.net.URL.<init>(URL.java:567)
at java.net.URL.<init>(URL.java:464)
at java.net.URL.<init>(URL.java:413)
at com.huawei.smproxy.util.Cfg.<init>(Cfg.java:68)
at com.huawei.smproxy.util.Cfg.<init>(Cfg.java:47)
at com.sxit.util.SMSender.<init>(SMSender.java:51)
at com.sxit.util.SMSender.getInstance(SMSender.java:41)
at com.cdc.smgp.msg.service.impl.MsgServiceImpl.sendMsg(MsgServiceImpl.java:95)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy61.sendMsg(Unknown Source)
at com.common.jms.QueueMessageListener.onMessage(QueueMessageListener.java:39)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:562)
at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:500)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:468)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:326)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:264)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1071)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1063)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:960)
at java.lang.Thread.run(Thread.java:662)
还求教了公司同时帮忙,还是没有搞定。
也在网上查找了很久,都是说配置文件编码问题什么的,很无奈。只好自己去看看smproxy_smgp.jar包的cfg类,发现这个类的两个构造方法的参数要求的是url,在看看我获取文件的路径是/F:/…的格式,是本地路径,考虑到linux上也是获取本地路径的,就没有问题,而window有问题,立马就想到了联网下访问window系统的文件夹时是要加上file://的file协议的,因此我在路径前面加上“file://”,再去测试发现问题已经解决了。所有拿出来分享一下。
昨天遇到这个问题,搞了一个下午都没有搞定,截取部分主要代码,如下:
String file=SMSender.class.getResource("/configsend.xml").getPath();
this.config = new Cfg(file).getArgs("SMGPConnect");
说明:这个问题在linux环境下是没有问题的
报错如下:
09:57:36,959 INFO [STDOUT] 09:57:36,956 ERROR [SMSender] Read gateway configuration error: java.net.MalformedURLException: no protocol: /F:/jboss-snsp/server/default/deploy/IdopSms.war/WEB-INF/classes/configsend.xml
java.net.MalformedURLException: no protocol: /F:/jboss-snsp/server/default/deploy/IdopSms.war/WEB-INF/classes/configsend.xml
at java.net.URL.<init>(URL.java:567)
at java.net.URL.<init>(URL.java:464)
at java.net.URL.<init>(URL.java:413)
at com.huawei.smproxy.util.Cfg.<init>(Cfg.java:68)
at com.huawei.smproxy.util.Cfg.<init>(Cfg.java:47)
at com.sxit.util.SMSender.<init>(SMSender.java:51)
at com.sxit.util.SMSender.getInstance(SMSender.java:41)
at com.cdc.smgp.msg.service.impl.MsgServiceImpl.sendMsg(MsgServiceImpl.java:95)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy61.sendMsg(Unknown Source)
at com.common.jms.QueueMessageListener.onMessage(QueueMessageListener.java:39)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:562)
at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:500)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:468)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:326)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:264)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1071)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1063)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:960)
at java.lang.Thread.run(Thread.java:662)
还求教了公司同时帮忙,还是没有搞定。
也在网上查找了很久,都是说配置文件编码问题什么的,很无奈。只好自己去看看smproxy_smgp.jar包的cfg类,发现这个类的两个构造方法的参数要求的是url,在看看我获取文件的路径是/F:/…的格式,是本地路径,考虑到linux上也是获取本地路径的,就没有问题,而window有问题,立马就想到了联网下访问window系统的文件夹时是要加上file://的file协议的,因此我在路径前面加上“file://”,再去测试发现问题已经解决了。所有拿出来分享一下。
相关文章推荐
- java基本数据类型
- SpringMVC设计思路
- spring mvc加载css,js等有关文件
- eclipse 配置hibernate自动生成工具
- Spring4.x新特性
- java入门学习
- Java基础第十一天总结
- Struts2标签大全,个人整理struts标签全、struts2标签全集学习
- 几种java调用dll的方式
- myeclipse 误删文件找回
- Java中的常用异常处理方法
- java抽象类和接口类
- bitmap setPixels报java.lang.IllegalStateException异常解决方法
- <转>创建支持eclipse的多模块maven项目
- 【java项目实战】ThreadLocal封装Connection,实现同一线程共享资源 synchronized
- java内存分页工具类
- SSH框架网上商城项目第1战之整合Struts2、Hibernate4.3和Spring4.2
- java反射机制
- ubunut 上搭建jdk 开发环境
- Spring中的mvc:interceptors标签配置拦截器