第一个web service错误,各位帮帮忙啊 faultString: (404)Not Found ??你tomcat开了没哦? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 回:yonghar(ohno) 开始了 楼主可以直接写server-config.wsdd文件,然后把它放到你的工程文件的WEB-INF下。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 是你的服务名称,这个名称随便起的,无所谓。<parameter name="className" value="HelloWorld"/> 这里的HelloWorld是类名,如果有包结构的话就要写名包路径,比如com.ctc.HelloWorld<parameter name="allowedMethods" value="sayHello"/> 这里的sayHello是你服务中的方法,也就是HelloWorld类中的那个sayHello()方法。其他的就没什么了!至于你在网上所看到的设置环境变量,我觉得这要看你的操作系统,如果是windows xp的话要设置环境变量。如果是其他操作系统的话,你只需要把axis安装中lib下的所有jar文件拷贝到你在tomcat下的应用文件夹下的web-inf下就可以了!还有就是使用编译器的时候,需要把那些jar文件再次引用到你的工程中,这个我想楼主应该会了吧,如果不会的话,直接和我msn联系吧[email protected]然后就是编写类了,首先是那个HelloWorld类,在jbuilder中建立这个类,如果带有包结构的话,上面的server-config.wsdd中相应的部分要做修改。写完这个类后,编译一下,然后把生成的HelloWorld.class文件拷贝到tomcat下你的应用文件夹下的web-inf下的classes下。接着就是写那个TestClient,内容如下:package com.ctc;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(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress( new java.net.URL(endpoint) ); call.setOperationName( "sayHello" );//注意方法名与HelloWorld.java中一样!! String res = (String) call.invoke( new Object[] {} System.out.println( res ); }}编译一下这个类,最后把tomcat启动一下,然后运行这个程序,输入结果是HelloWorld! 先保证你的程序编译通过然后按照OnlyFor_love(【20 September 1982】) 说的做。 在测试这个服务的过程中就2个类,这两个类的编译一定能通过的,除非...............除非出现低级错误!楼主用java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd 无疑就是想生成server-config.xml文件,在命令行下生成的话,需要设置很多环境变量,本人最讨厌的是环境变量的设置,呵呵,不过编写java程序的时候不管怎么样也要学会环境变量的设置。还是回到正题,楼主可以直接写server-config.xml这个文件,很简单的!按照我上面的就行了 同意,只要再添加类似下面的元素就可以了。<service name="Version" "Version" 是发布后ws的名称,ws发布后的url包括这个名字。name="className" 元素指定了要发布成ws的类位置。name="allowedMethods" 是表示发布类(org.apache.axis.Version)中所有方法。 <service name="Version" type="" provider="java:RPC"> <parameter name="className" value="org.apache.axis.Version"/> <parameter name="allowedMethods" value="getVersion"/> </service> 上面笔误了,要发布所有的方法的参数值:<parameter name="allowedMethods" value="*"/>而<parameter name="allowedMethods" value="getVersion"/>是只发布getVersion这个方法。 求教,Hibernate插入数据的问题 求一HQL或实现思路 ejb可以先于web应用启动吗(weblogic8.1) 请教:::list 问题 spring+hibernate的资料 求教weblogic中怎样提高jms queue中的consumers数量 php有drupal, 那jsp有什么? CMP奇怪问题? 正则表达式提取若干字符串 java net 网络程序 互相是怎么调用的 本人的第一个hibernate问题,谢了 struts验证框架中ValidateWhen这个验证规则怎么用?哪位指点一下
开始了
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>
至于你在网上所看到的设置环境变量,我觉得这要看你的操作系统,如果是windows xp的话要设置环境变量。
如果是其他操作系统的话,你只需要把axis安装中lib下的所有jar文件拷贝到你在tomcat下的应用文件夹下的web-inf下就可以了!还有就是使用编译器的时候,需要把那些jar文件再次引用到你的工程中,这个我想楼主应该会了吧,如果不会的话,直接和我msn联系吧[email protected]然后就是编写类了,首先是那个HelloWorld类,在jbuilder中建立这个类,如果带有包结构的话,上面的server-config.wsdd中相应的部分要做修改。写完这个类后,编译一下,然后把生成的HelloWorld.class文件拷贝到tomcat下你的应用文件夹下的web-inf下的classes下。接着就是写那个TestClient,内容如下:
package com.ctc;
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();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName( "sayHello" );//注意方法名与HelloWorld.java中一样!!
String res = (String) call.invoke( new Object[] {}
System.out.println( res );
}
}
编译一下这个类,最后把tomcat启动一下,然后运行这个程序,输入结果是HelloWorld!
然后按照OnlyFor_love(【20 September 1982】) 说的做。
除非出现低级错误!楼主用java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd 无疑就是想生成server-config.xml文件,在命令行下生成的话,需要设置很多环境变量,本人最讨厌的是环境变量的设置,呵呵,不过编写java程序的时候不管怎么样也要学会环境变量的设置。还是回到正题,楼主可以直接写server-config.xml这个文件,很简单的!
按照我上面的就行了
<service name="Version" "Version" 是发布后ws的名称,ws发布后的url包括这个名字。
name="className" 元素指定了要发布成ws的类位置。
name="allowedMethods" 是表示发布类(org.apache.axis.Version)中所有方法。 <service name="Version" type="" provider="java:RPC">
<parameter name="className" value="org.apache.axis.Version"/>
<parameter name="allowedMethods" value="getVersion"/>
</service>
<parameter name="allowedMethods" value="*"/>而<parameter name="allowedMethods" value="getVersion"/>是只发布getVersion这个方法。