若Hello.java是个接口,HelloImpl.java实现了Hello.java。举一反三(HelloImple.java调用了其他包下的类。又怎么办呢)
Hello.java
- package com.bing.inter;
- public interface Hello {
- public String sayHello(String name);
- }
HelloImpl.java (注意没有包名)
- import com.bing.inter.Hello;
- public class HelloImpl implements Hello {
- @Override
- public String sayHello(String name) {
- return "你好,"+name;
- }
- }
以上我都是在eclipse下编写的代码
把HelloImpl.java复制到webapps/axis/目录下。重名名HelloImpl.jws。
然后把eclipse的build/classes的包含Hello.class的包目录 复制到webapps/axis/WEB-INF/classes中。
启动tomcat,输入http://localhost:9080/axis/HelloImpl.jws?wsdl。是否发布成功。
测试端代码:
- package com.bing.test;
- import org.apache.axis.client.Call;
- import org.apache.axis.client.Service;
- public class TestHello1 {
- public static void main(String[] args) {
- Service service=new Service();
- String url="http://localhost:9080/axis/HelloImpl.jws?wsdl";
- try {
- Call call=(Call)service.createCall();
- call.setTargetEndpointAddress(url);
- call.setOperation("sayHello");
- Object[] input=new Object[]{"大兵哥"};
- String result=(String) call.invoke(input);
- System.out.println(result);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
你好,大兵哥