`

关于两个工程合并 Struts2工程冲突问题(serializer.jar)

阅读更多
看了网上很多的实例,介绍一个简单点的~

1.新建WEB工程 testservice
  目录如下:
  cn--test--service--impl
  2.要导入的包
            activation-1.0.2.jar
      commons-codec-1.3.jar
      commons-httpclient-3.0.jar
      commons-logging-1.0.4.jar
      jaxen-1.1-beta-8.jar
      jdom-1.0.jar
      log4j-1.2.x.jar
      mail-1.3.3_01.jar
      spring-1.2.x.jar
      stax-api-1.0.jar
      wsdl4j-1.5.2.jar
      wstx-asl-2.9.jar
      xbean-2.1.0.jar
      xbean-spring-2.2.jar
      xfire-all-1.0.jar
      XmlSchema-1.0.jar

  3.数据发布端
  (1)编写发布接口
  package cn.test.service;
  public interface ADService {
  String[][] getDatas();
  }
  (2)编写实现类
  package cn.test.service.impl;
  import cn.test.service.ADService;
  public class ADServiceImpl implements ADService{
  public String[][] getDatas() {
  
    String ads[][] = new String[3][3];
  
    for(int i=0; i< 3; i++){
      for(int j=0; j< 3; j++){
        ads[i][j] = String.valueOf(i * j);
      }
    }
    return ads;
  }
  }

  4.增加xfire的配置文件services.xml
      在src目录中加入/src/META-INF/xfire/services.xml
      < beans xmlns=" http://xfire.codehaus.org/config/1.0" >
  < service>
  < name> AD< /name>         < !-- 这个名字比较重要,调用时用的就是它 -->
  < namespace> http://localhost/ADService< /namespace>
  < serviceClass> cn.test.service.ADService< /serviceClass>
  < implementationClass>
    cn.test.service.impl.ADServiceImpl
  < /implementationClass>
  < !-- 这个东西是一个修饰器 貌似调用了SPRING的整合有关 加了会报一个错误
  < inHandlers>
    < handler
      handlerClass=" org.codehaus.xfire.demo.handlers.CheckVersionHandler" />
  < /inHandlers>
  -->
  < /service>
      < /beans>
    
  5.配置web.xml
      在web.xml中加入:
                < servlet>
  < servlet-name> XFireServlet< /servlet-name>
  < display-name> XFire Servlet< /display-name>
  < servlet-class>
    org.codehaus.xfire.transport.http.XFireConfigurableServlet
  < /servlet-class>
  < /servlet>
  < servlet-mapping>
  < servlet-name> XFireServlet< /servlet-name>
  < url-pattern> /services/*< /url-pattern>
  < /servlet-mapping>

  6.测试xfire是否部署成功
  http://localhost/testservice/services/AD?wsdl

  7.编写客户端
  package cn.test.service;
  import java.net.MalformedURLException;
  import org.codehaus.xfire.XFire;
  import org.codehaus.xfire.XFireFactory;
  import org.codehaus.xfire.client.XFireProxyFactory;
  import org.codehaus.xfire.service.Service;
  import org.codehaus.xfire.service.binding.ObjectServiceFactory;
  public class CallService {
  public String[][] getData(){
          Service serviceModel = new ObjectServiceFactory().create(ADService.class);             //注意,此处用的接口是发布端的接口ADService.class
    
          XFire xfire = XFireFactory.newInstance().getXFire();
          XFireProxyFactory factory = new XFireProxyFactory(xfire);       
      
          String serviceUrl = " http://localhost/testservice/services/AD" ;
ADService client = null;
          try {
          client = (ADService) factory.create(serviceModel, serviceUrl);
          } catch (MalformedURLException e) {
        System.out.println(" WsClient.callWebService(): EXCEPTION: " + e.toString());
          }   
              
        
          String[][] datas = null ;
          try {
    datas = client.getDatas();
          } catch (Exception e){
    System.out.println(" WsClient.callWebService(): EXCEPTION: " + e.toString());
          }           
        
          //将所有的数据逐个打印出来
          int len = datas.length;
          for(int i=0; i< len; i++){
    int len2 = datas[i].length;
    for(int j=0; j< len2; j++){
      System.out.print(" \t" +datas[i][j]);
    }
    System.out.println();
          }
          return datas;
  }
  }
  8.写一个JSP调用客户端
  < %@ page language=" java" import=" java.util.*,cn.yicha.service.*" pageEncoding=" utf-8" %>

  < !DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN" >
  < html>
    < head>
        < title> My JSP ''index.jsp'' starting page< /title>
    < /head> 
    < body>
  webservice test!
      
        < %
  CallService cs = new CallService();
  cs.getData();
        < /body>
  < /html>

----------------------------------------

通过页面访问,自动将URL传递给相应方法~

这是SOAP的一种实现方法~

初步领教了~

另外MYECLIPSE自带的Spring1.2.6和SPRING2.0的包有冲突,需注意!

还有一个常出的问题是java.lang.NoClassDefFoundError: org/apache/xml/serializer/TreeWalker错误
                        这次通过在Apache官方找到了出错误的原因:
                        原本这个类是包含在xalan.jar中的,但是xalan-j2.7.0版的发布包中,将serializer包中的类单独打包成 serializer.jar,不再包含在xalan.jar中,所以才会即使添加了xalan.jar也无法找到该类,添加后即可解决问题!

在出具体问题时,如果是出现java.lang.NoClassDefFoundError这样的错误,注意查看对应的jar包是否导入!



从: http://blog.myspace.cn/e/402635251.htm   转载
分享到:
评论

相关推荐

    serializer.jar、xalan.jar、xercesImpl.jar和xml-apis.jar四个jar

    在给定的标题和描述中提到的"serializer.jar、xalan.jar、xercesImpl.jar和xml-apis.jar"是四个重要的Java库,它们各自包含了特定的功能,对于XML处理和Web服务开发至关重要。现在我们来详细了解一下这四个JAR文件的...

    serializer.jar、xalan.jar、xercesImpl.jar和xml-apis.jar

    serializer.jar、xalan.jar、xercesImpl.jar和xml-apis.jar Provider org.apache.xalan.processor.Transforme

    JSTL_XML中的xalan.jar和serializer.jar

    在这个过程中,`xalan.jar`和`serializer.jar`两个库扮演了关键角色。 1. **xalan.jar**: `xalan.jar`是Apache Xalan的Java版本,它是XSL Transformations (XSLT) 1.0规范的一个实现。XSLT是一种语言,用于将XML...

    xalan.jar,serializer.jar,jdom.jar

    在给定的标题和描述中,我们提到了三个关键的JAR文件:`xalan.jar`, `serializer.jar`, 和 `jdom.jar`。这些都是Java应用程序中常用的库文件,它们各自扮演着不同的角色。接下来,我们将详细探讨这三个库以及与之...

    serializer.jar包

    jmeter需要的jar包引入,jmeter需要的jar包引入,jmeter需要的jar包引入

    serializer.jar,xalan.jar,xalan-2.7.0.jar,xercesImpl.jar,xsltc.jarxml-apis.jar

    serializer.jar,xalan.jar,xalan-2.7.0.jar,xercesImpl.jar,xsltc.jarxml-apis.jar,解决tomcat和jdk1.6以上Provider org.apache.xalan.processor.TransformerFactoryImpl not found,或者 Error filterStart

    xalan_2_7_1.jar,serializer.jar,jdom.jar

    用于解决Dwr+Tomcat+Eclipse开发时报错的三个包:xalan_2_7_1.jar,serializer.jar,jdom.jar 如:Probably not an issue: org.jdom.Document is not available so the jdom converter will not load. This is only an...

    serializer.jar 包

    serializer.jar 包,使用java2的网友必备

    serializer.jar

    serializer.jar

    fckeditor jar含xalan.jar serializer.jar

    fckeditor jar含xalan.jar serializer.jar

    serializer-2.7.1.jar xalan.jar下载

    标题中的"serializer-2.7.1.jar xalan.jar下载"指的是两个重要的Java库文件,它们在Java开发中常用于处理XML数据。`serializer-2.7.1.jar`是Apache XML Commons项目的一个组成部分,主要提供了XML序列化功能,允许...

    kafka-avro-serializer-5.3.2.jar

    Confluent Schema Registry 在使用java开发生产者以及消费者时的依赖包,在使用时导入到工程即可

    java.lang.NoClassDefFoundError org.apache.xml.serializer.TreeWalker.doc

    在jsp运行过程中,报错 java.lang.NoClassDefFoundError org.apache.xml.serializer.TreeWalker时的处理方法。

    xalan系列jar包

    xalan 系列最新全部jar包和文档 ...包括serializer.jar、xalan.jar、xercesImpl.jar、xml-apis.jar、xsltc.jar 解决Provider org.apache.xalan.processor.TransformerFactoryImpl not found错误。

    271个java需要用的jar包

    struts2-struts1-plugin-2.3.15.3.jar struts2-testng-plugin-2.3.15.3.jar struts2-tiles-plugin-2.3.15.3.jar struts2-tiles3-plugin-2.3.15.3.jar tagsoup-1.2.1.jar tiles-api-2.0.6.jar tiles-autotag-core-...

    xalan系列jar包 2.zip

    1. **serializer.jar**:这是Apache Xerces项目的一部分,提供了XML序列化功能。它将DOM(Document Object Model)或其他XML表示形式转换为实际的XML输出流。这对于生成XML文件或在网络上传输XML数据非常有用。 2. ...

    Blank Board Serializer.dmg

    一个可以写Mac OS 主板序列号的软件,不一定适用于所有的Mac,早期的Mac用户可以尝试一下,自行制作引导盘即可,不一定支持APFS格式的最新的Catalina系统。

    mysqlconnector.java.5.1.10.bin.jar&&jstl;.jar&&standard;.jar&&xalan;.jar

    mysqlconnector.java.5.1.10.bin.jar、jstl.jar、standard.jar、xalan.jar、activation.jar、catalina-root.jar、mail.jar、serializer.jar

Global site tag (gtag.js) - Google Analytics