随笔 - 8  文章 - 0  评论 - 2  阅读 - 22870

创建Web Service项目

使用AXIS框架
 
idea方式:
创建后 加入axis依赖包到输出目录,idea也会提示你进行这步操作
项目启动后访问 http://localhost:8080/AxisWebService/services
即可看到对外暴露的web services服务
 
 
编写客户端调用Web Service HelloWorld
需要配置log4j.properties
复制代码
log4j.rootLogger = debug,stdout,D,E

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log 
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

Client
package example;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

import javax.xml.namespace.QName;
public class Client {
    public static void main(String[] args) {
        String url = "http://localhost:8080/AxisWebService/services/HelloWorld?wsdl";
        String method = "sayHelloWorldFrom";

        Service service = new Service();
        try {
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(url);
            //call.setOperationName(new QName("http://localhost:8080/AxisWebService/services/HelloWorld", method));
            call.setOperationName(method);
            call.addParameter("param1", org.apache.axis.Constants.XSD_STRING,
                    javax.xml.rpc.ParameterMode.IN);
            call.setReturnType(org.apache.axis.Constants.XSD_STRING);

            String param1 = "JJ";
            // 调用获取返回值
            String result = (String) call.invoke(new Object[]{param1});
            System.out.println(result);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
复制代码

 

Client.java
复制代码
package example;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

import javax.xml.namespace.QName;
public class Client {
    public static void main(String[] args) {
        String url = "http://localhost:8080/AxisWebService/services/HelloWorld?wsdl";
        String method = "sayHelloWorldFrom";

        Service service = new Service();
        try {
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(url);
            //call.setOperationName(new QName("http://localhost:8080/AxisWebService/services/HelloWorld", method));
            call.setOperationName(method);
            call.addParameter("param1", org.apache.axis.Constants.XSD_STRING,
                    javax.xml.rpc.ParameterMode.IN);
            call.setReturnType(org.apache.axis.Constants.XSD_STRING);

            String param1 = "JJ";
            // 调用获取返回值
            String result = (String) call.invoke(new Object[]{param1});
            System.out.println(result);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
复制代码
 
运行客户端遇到错误: SAXException
找到server-config.wsdd 删掉这部分
 
再次尝试,即可成功获取 服务
 

posted on   蒟蒻鸡  阅读(306)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示