TengShurong
TengShurong
2012-03-10 17:03
浏览 728
已采纳

MyEclipse中项目启动后报错

有哪位高手可以解答一下,下面的异常是什么原因引起的,怎么解决呢?
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.ConnectException: Connection timed out: connect
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
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.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:153)
at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:120)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.excellence.swap.service.MissiveSwapWsFacadeSoapBindingStub.getReceiveMissiveSwapInfo(MissiveSwapWsFacadeSoapBindingStub.java:484)
at com.excellence.swap.service.MissiveSwapWsFacadeProxy.getReceiveMissiveSwapInfo(MissiveSwapWsFacadeProxy.java:80)
at com.cvicse.sws.common.jinghua.JingHuaService.reveiveDoc(JingHuaService.java:85)
at com.cvicse.sws.wfs.common.listener.JingHuaTask.run(JingHuaTask.java:40)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • iteye_16709
    iteye_16709 2012-03-10 17:18
    已采纳

    1.检查你的网络连接是否正常。
    2.看看你连接的数据库服务器是否正常。
    3.检查你的端口号是否正确。

    点赞 评论
  • suziwen
    suziwen 2012-03-10 17:17

    连接超时,网络无法访问到目标

    点赞 评论
  • long13131462101
    long13131462101 2012-03-10 19:54

    [code="java"]这样的错误主要原因是:

    解决:根据以上错误,到google搜索错误产生的原因和解决方案,发现遇到此问题的人不少,其并有人声称axis 1.2rc1已经解决了此bug。
    然而,现时已经无法下载axis 1.4以下的版本,当前使用的是JBuilder自带的axis包,不清楚版本。升级到axis 1.2rc1的解决途径已经无望。
    仔细查看已经搜索的解决方案,其中sun的论坛上一个帖子如此说:
    This exception is because of the Java 5 XML parsing changes.
    问题出现在xml的解析上。而以上错误的解析器使用的是weblogic.xml.jaxp.WebLogicSAXParser。
    查找错误中org.apache.axis.encoding.DeserializationContextImpl类中的解析方法parse,其中一句:
    SAXParser parser = XMLUtils.getSAXParser();
    表明解析器的产生由XMLUtils.getSAXParser()获得。

    而XMLUtils类中,初始化解析器工厂的方法:
    static
    {
    log = LogFactory.getLog((class$org$apache$axis$utils$XMLUtils != null ? class$org$apache$axis$utils$XMLUtils : (class$org$apache$axis$utils$XMLUtils = class$("org.apache.axis.utils.XMLUtils"))).getName());
    empty = new String("");
    bais = new ByteArrayInputStream(empty.getBytes());
    initSAXFactory(null, true, false);
    }
    其中,initSAXFactory方法:
    public static void initSAXFactory(String factoryClassName, boolean namespaceAware, boolean validating)
    {
    if(factoryClassName != null)
    try
    {
    saxFactory = (SAXParserFactory)Class.forName(factoryClassName).newInstance();
    if(System.getProperty("javax.xml.parsers.SAXParserFactory") == null)
    System.setProperty("javax.xml.parsers.SAXParserFactory", factoryClassName);
    }
    catch(Exception e)
    {
    log.error(Messages.getMessage("exception00"), e);
    saxFactory = null;
    }
    else
    saxFactory = SAXParserFactory.newInstance();
    saxFactory.setNamespaceAware(namespaceAware);
    saxFactory.setValidating(validating);
    saxParsers.clear();
    }

    从以上代码看出,axis的XMLUtils类取得解析器工厂的过程为:
    SAXParserFactory.newInstance()
    该方法的解释:
     newInstance
    

    public static SAXParserFactory newInstance()

     获取 SAXParserFactory 的一个新实例。此静态方法创建一个新的工厂实例,此方法使用下面有序的查找过程来确定要加载的 SAXParserFactory 实例类:
    
         * 使用 javax.xml.parsers.SAXParserFactory 系统属性。
         * 使用 JRE 文件夹中的属性文件 "lib/jaxp.properties"。此配置文件格式为标准的 java.util.Properties 且包含实现类的完全限定名,其中实现类的键是上述定义的系统属性。 JAXP 实现只读取一次 jaxp.properties 文件,然后缓存其值供以后使用。如果首次尝试读取文件时,文件不存在,则不会再次尝试检查该文件是否存在。首次读取 jaxp.properties 后,其中的属性值不能再更改。
         * 如果可以,使用 Services API(在 JAR 规范中进行了详细描述)来确定类名称。Services API 将查找在运行时可用的 jar 中 META-INF/services/javax.xml.parsers.SAXParserFactory 文件中的类名。
         * 平台默认的 SAXParserFactory 实例。
    
     在应用程序获取对 SAXParserFactory 的引用后,它可以使用工厂来配置和获取解析器实例。
    根源在此,将系统属性vax.xml.parsers.SAXParserFactory设置为org.apache.xerces.jaxp.SAXParserFactoryImpl(不使用weblogic的解析器工厂)
    运行后,一切正常了。
    

    结论:axis低版本在jdk5中使用时,要使用旧版的xml解析器工厂。
    [/code]

    点赞 评论
  • long13131462101
    long13131462101 2012-03-10 19:55
    点赞 评论

相关推荐