`
tuti
  • 浏览: 62888 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java verbose 诊断部署问题

阅读更多
由于工作原因,最近又开始干上Swing的桌面Application.
尝试着做了个DEMO,Swing界面,调用Server端SOA服务。
在Eclipse环境中选用JDK5.0,引用jaxm-api.jar,做出预期效果。
在本机脱离Eclipse环境发布,命令行启动,可以启动Swing界面,但调用SOAP服务就报错
 java.lang.Exception: 
 javax.xml.soap.SOAPConnection.call(Ljavax/xml/soap/SOAPMessage;Ljavax/xml/messaging/Endpoint;)
  Ljavax/xml/soap/SOAPMessage;
   :java.lang.NoSuchMethodError
     :javax.xml.soap.SOAPConnection.call(Ljavax/xml/soap/SOAPMessage;Ljavax/xml/messaging/Endpoint;)
        Ljavax/xml/soap/SOAPMessage;

  看信息是SOAPConnection类,没有call这个方法。检查jaxm-api.jar包中相应类存在此方法,而且jaxm-api.jar已放在classPath最前面。不得要领,甚是郁闷。

  晚上回家看《JAVA深度历险》(王森 著),提到java 启动命令可以加 -verbose参数,以现显示"类装载器(class loader)在背后偷偷地运作",屏幕输出显示了具体状态到硬盘上哪个jar包。
  第二天,用java -verbose 参数启动程序,发现SOAPConnection类并不是从期望的jaxm-api.jar中装载,而是从JRE6的rt.jar装载。
  参考了《JAVA深度历险》,原来是没有指定用哪个jre中java.exe,系统找到系统注册表中的jre6中java,装载了相应的rt.jar包中的SOAPConnection类, 造成NoSuchMethodError的问题。
  搞清问题原因后,在启动 bat文件中,指定1.5的java.exe路径
 
Path=C:\Program Files\java\jdk1.5.0_03\bin

  启动后,取得预定效果。

  学习到2个知识点:
  1. 系统如何来确定java.exe 启动哪个JVM.(具体见参考资料)
  2. java -verbose 参数用途
 
 
  参考资料:
   《JAVA深度历险》(王森 著)
  
 
分享到:
评论
1 楼 sdh5724 2008-12-29  
good. 作事情很有手段, 敬佩下!

相关推荐

    精简JRE - verbose命令

    当我们需要对Java程序的运行过程进行详细分析,特别是诊断性能问题或内存泄漏时,`verbose`命令是一个非常有用的工具。本篇内容将深入探讨如何精简JRE并使用verbose命令来获取运行时的详细信息。 首先,精简JRE是...

    wechatpay-java 部署linux报错,替换policy文件

    在IT行业中,尤其是在Java开发和Linux系统管理领域,我们经常遇到各种问题,特别是在部署应用程序时。"wechatpay-java"是一个与微信支付相关的Java库或服务,用于处理在Linux环境中进行的微信支付业务。在这个场景中...

    Laravel开发-laravel-verbose

    在本文中,我们将深入探讨Laravel开发中的一个重要扩展——`laravel-verbose`。这个包是专门为Laravel和Lumen框架设计的,旨在增强内置控制台命令的功能,提供更丰富的详细信息,帮助开发者更好地理解和调试他们的...

    Matlab与java接口(图文并茂)

    《Matlab与Java接口技术详解》 Matlab与Java接口技术是实现两者间高效交互的重要途径,它允许我们在Matlab环境中利用Java的强大功能,同时也能让Java程序调用Matlab的功能,实现数据处理和计算任务的无缝对接。本文...

    前端开源库-karma-verbose-summary-reporter

    `karma-verbose-summary-reporter` 的出现,正是为了应对这种复杂性,通过输出更详尽的测试摘要,帮助开发者快速定位问题,提高测试效率。 使用这个库,开发者可以: 1. **详细报告**: 查看每个测试用例的执行时间...

    HelloWorld的javap -verbose HelloWorld 字节码初探

    标题中的“HelloWorld的javap -verbose HelloWorld”指的是在Java编程环境中,通过`javap`这个命令行工具来反汇编一个简单的“HelloWorld”程序,以深入理解字节码的工作原理。`javap`是Java Platform Debugger ...

    Java 调用.NET web服务

    7. **部署和测试**: 在Java应用中集成Web服务调用后,进行测试以确保一切正常工作。可以使用JUnit或其他测试框架编写单元测试,也可以通过模拟不同输入和异常情况来验证客户端代码的正确性。 8. **性能优化**: 如果...

    JAVA-OPTS参数设置.docx

    8. -verbose:gc:实时垃圾收集信息。 9. -Xloggc:gc.log:指定垃圾收集日志文件。 10. -XX:+UseParNewGC:缩短 minor 收集的时间。 11. -XX:+UseConcMarkSweepGC:缩短 major 收集的时间。 PermGen space 是 ...

    JAVA题库习题及答案--.doc

    此外,Java通过接口实现多重继承,而不是直接支持多继承,以避免“菱形问题”。 在Java编程中,有多个核心包,如`java.io`用于输入输出,`java.util`提供各种实用工具类,`java.lang`包含所有Java程序都依赖的基本...

    ( javawebstart部署swing和rcp相关资料.txt )

    ### Java Web Start 部署Swing和RCP应用的关键步骤与签名机制解析 Java Web Start(JWS)是Sun Microsystems开发的一项技术,允许在用户的机器上通过网络自动下载并运行Java应用程序。这对于部署Swing或RCP(Rich ...

    JAVA杂谈

    当你在命令行窗口运行Java程序,并使用`java -verbose:class`参数时,你会看到一系列被加载的类文件,首先是JDK自身所需的类库,然后是你程序中实际使用的类。值得注意的是,即便你在一个类中声明了另一个类的对象,...

    JAVA命令大全.pdf

    Java是一门广泛使用的编程语言,它是平台无关的,即一次编写,到处运行。...通过命令行参数的组合使用,开发者可以精细地控制Java程序的编译和运行过程,优化程序性能,并且能够及时地定位和解决运行时的问题。

    21学通JAVA

    - `-verbose`:显示详细信息。 - `-deprecation`:显示已弃用的API信息。 - `-classpath+路径`:指定用户类文件路径。 - `-sourcepath+路径`:指定源文件路径。 - `-bootclasspath+路径`:覆盖引导类路径。 - ...

    JAVA性能测试与调优案例

    合理利用`-verbose:class`等选项监控类加载过程,找出可能导致性能瓶颈的加载行为。 3. **字符串池和常量池优化**:理解字符串池的作用,避免不必要的字符串创建和拷贝,提高内存使用效率。 4. **代码优化**:避免...

    21天学通JAVA(高清版PDF)

    -verbose选项可以输出详细的编译过程信息,有助于调试和了解程序的编译过程。-classpath和-sourcepath选项则分别用于指定类和源文件的路径。jar工具可以将多个文件合并为单个JAR文件,它既是一个压缩工具,也可以...

Global site tag (gtag.js) - Google Analytics