import javax.xml.rpc.ServiceException;
import java.net.MalformedURLException;
import java.rmi.RemoteException;没用到这些类吧程序应该没问题,是不是其它包的问题?

解决方案 »

  1.   

    应该缺少一个解析xml文件的类比如xerces.jar包
      

  2.   

    我看了源代码(axis1.3版),发现第一个错误处的代码是:protected AxisClient getAxisClient() {
        return new AxisClient(getEngineConfiguration());
    }
    而getEngineConfiguration()的代码是: 
    protected EngineConfiguration getEngineConfiguration() {
            if (this.config == null) {
                this.config = EngineConfigurationFactoryFinder.newFactory().getClientEngineConfig();
            }
            return config;
    } 这里面似乎也没有xml什么事啊?高手再给我看看
      

  3.   

    我下了一个xercesImpl.jar包,给他安装在CLASSPATH里了,可是还是不行啊
      

  4.   

    学java就这点最TMD操蛋了,环境不知道怎么配置!
      

  5.   

    http://localhost:8080/axis能否正常显示?
      

  6.   

    zxhong(红透半边天) ( ) 信誉:301  2005-12-14 09:46:00  得分: 0  
     
     
       http://localhost:8080/axis能否正常显示?================================正常啊
      
     
      

  7.   

    这个例子并没有什么错误呀!
    我已经成功了!
    我的博客:http://oksonic.blogjava.net
    我将制作一个录像教程发布!!!
    敬请关注!
      

  8.   

    在CLASSPATH里加入AXIS要用的那几个jar包。
      

  9.   

    估计还是包的问题吧,有没有把那个web-inf下面的包都考过来?
      

  10.   

    用axis1.2版本试试tomcat4.1.12版本里有action.jar,mail.jar包
      

  11.   

    你引用了:
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.ServiceException;
    import java.net.MalformedURLException;
    import java.rmi.RemoteException;axis包没有加载到你的lib路径下,先下载axis的最新版本,zip文件解压后把axis里的lib目录下的所有jar文件拷到你的lib下。
      

  12.   

    怎么整都不行,这是天意吧。天意不让我学习AXIS?你们在配置Axis的时候都很费尽吗?不就是把axis的包拷贝到webapps下就一切都完事了吗?象楼上说的“zip文件解压后把axis里的lib目录下的所有jar文件拷到你的lib下。”这后一个lib应该是java-home里的lib吧。我拷到java-home的lib下,但是java好像不主动去找,还得在classpath里配置。如果拷贝到lib\ext下,就可以自动找了。但是我拷贝到java-home\lib\ext下之后还是不行,执行时出现的错误是:java.lang.NoClassDefFoundError:org/apache/axis/client/Service at SayHelloClient2.main(SayHelloClient2.java:14)不想搞了,太TMD累。
      

  13.   

    我感觉出错的原因在于,好像执行是在java环境里执行的,所以java环境里编译是没有错误。但是具体执行到webservice的时候,是在tomcat或者axis里执行的,他们没有找到包?
      

  14.   

    明白了,应该是tomcat 4.1的xmlParserAPIs.jar太旧所致。
      

  15.   

    以下是我做的一个成功的例子
    一:需要的工具1。tomcat:    下载和安装应该不用我说了吧,呵呵!2。jbuilder:  主要是用来编写一些小程序用的,我用的是jbuilder3。下载axis的压缩包,我的是axis-1_2alpha.zip二:实例解说1。解压缩axis-1_2alpha.zip文件,我的直接解压缩在D盘,然后把把D:\axis-1_2alpha\axis-   1_2alpha\webapps下的axis文件全部拷贝到tomcat下的webapps下面。2。把解压缩文件夹下的lib里的所有jar都拷贝到%tomcat%\webapps\axis\WEB-INF下的lib里面。3。利用jbuilder,编写2个类,一个是服务类,主要是输出“helloworld”,另一个是客户端的测试程序。       在jbuilder中建立一个工程,然后把解压缩文件夹下的lib里的所有jar引用到你的工程文件中。           (1)服务类:HelloWorld.java               代码如下:public class HelloWorld                                  {
                                                public String sayHello()
                                               {
                                                         return "HELLO WORLD!";
                                                }
                                     }写完这个类后,编译一下,然后把生成的HelloWorld.class文件拷贝到tomcat下你的应用文件夹下的web-inf下的classes下。             (2)客户端测试程序TestClient.java                      代码如下:import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;public class TestClient
    {
       public static void main(String [] args) throws Exception {       String endpoint = "http://localhost:" +"8080"+ "/axis/services/sayHelloservice";//指明服务所在位置       Service  service = new Service();  //创建一个Service实例,注意是必须的!
           Call call = (Call) service.createCall();//创建Call实例,也是必须的!     call.setTargetEndpointAddress( new java.net.URL(endpoint) );//为Call设置服务的位置        call.setOperationName( "sayHello" );//注意方法名与HelloWorld.java中一样!!         String res = (String) call.invoke( new Object[] {} );//返回String,没有传入参数                         System.out.println( res );
       }
    }
    4。这一步骤很关键,就是写一个server-config.wsdd文件,直接写就行了。server-config.wsdd的内容如下:
    <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>
        <service name="sayHelloservice" provider="java:RPC">
            <parameter name="className" value="HelloWorld"/>
            <parameter name="allowedMethods" value="sayHello"/>
        </service>
    <transport name="http">
      <requestFlow>
        <handler type="URLMapper"/>
      </requestFlow>
    </transport>
    </deployment>
    对于上面这个部署文件,你只需要考虑<service></service>之间的内容。其中sayHelloservice  是你的服务名称,这个名称随便起的,无所谓,不过也要和TestClient.java中的String endpoint = "http://localhost:" +"8080"+ "/axis/services/sayHelloservice";中的sayHelloservice相一致。<parameter name="className" value="HelloWorld"/>  这里的HelloWorld是类名,如果有包结构的话就要写名包路径,比如com.ctc.HelloWorld<parameter name="allowedMethods" value="sayHello"/>  这里的sayHello是你服务中的方法,也就是HelloWorld类中的那个sayHello()方法。
    好了现在可以运行一下TestClient这个类了,结果很显然就是输出HelloWorld!
      

  16.   

    楼上的哥们,你也没有配置classpath吧?但是我完全按照你的要求做了之后,执行的时候,出现好多错误,主要是javax.xml.transform.Source at org.apache.axis.encoding.ser.JAFDataHandlerSerializerFactory.class$(JAFDataHandlerSerializerFactory.java:137)等等,不知道错在那里了,我感觉还是xml的问题,但是我已经下了最新的xml包--xerces.jar,并放在axis\WEB-INF\lib里了,而且还在CLASSPATH里加入了路径。感觉走到绝路上了,为什么你们没有一个遇到这样的问题?
      

  17.   

    如果我把xerces.jar包从CLASSPATH里删除,运行时就会出现这样的错误:
    Exception in thread "main" java.lang.NoClassDefFoundError:org/w3c/dom/Node at org.apache.axis.client.Service.getAxisClient(Service.java:104)等等,可见还是与xml的处理函数有关。我就不明白,xml的处理,我有相应的包,即使我不部署那个包,也有JDK本身的org.w3c.dom来处理,可是为什么它就是出错?
      

  18.   

    咱俩居然是1个例子,可错误不尽相同:log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectR
    esourceBundle).
    log4j:WARN Please initialize the log4j system properly.
    Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/soap/SOAPEx
    ception
            at org.apache.axis.configuration.FileProvider.configureEngine(FileProvid
    er.java:179)
            at org.apache.axis.AxisEngine.init(AxisEngine.java:172)
            at org.apache.axis.AxisEngine.<init>(AxisEngine.java:156)
            at org.apache.axis.client.AxisClient.<init>(AxisClient.java:52)
            at org.apache.axis.client.Service.getAxisClient(Service.java:104)
            at org.apache.axis.client.Service.<init>(Service.java:113)
            at Hello.main(Hello.java:13)不管我开不开服务器,客户端运行都这效果。
      

  19.   

    kmlzkma(骗人布) ( ) 信誉:99  2005-12-29 18:41:00  得分: 0  
     
     我好使了,谢谢
    ====================================================你改什么了?就好使了?