如何通过JAVA WSImport生成WEBSERVICE客户端并实现401认证流程图解?

2026-05-16 05:001阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计731个文字,预计阅读时间需要3分钟。

如何通过JAVA WSImport生成WEBSERVICE客户端并实现401认证流程图解?

wsimport 是 JDK 内置的命令,用于根据 wsdl 文档生成客户端中间代码。基于生成的代码编写客户端,可以省去许多繁琐的步骤。先看两张截图:

1. 使用浏览器打开 webservice 显示的界面:

2.使用 wsimport 生成客户端:

wsimport -s ./src http://example.com/service?wsdl

以上命令将在当前目录下生成客户端代码,便于后续使用。

概述

wsimport是jdk自带的命令,可以根据wsdl文档生成客户端中间代码,基于生成的代码编写客户端,可以省很多麻烦。

先看两张截图:

使用浏览器打开webservice出现的界面:

使用wsimport生成webservice客户端出现401错误:


需用到的命令参数如下:

1. -d <directory> 在指定的目录生成class文件
2. -p <pkg> 指定生成文件的包结构
3. -Xauthfile <filepath> 在格式文件进行授权信息
4. -keep <url> 在生成class文件,或者jar包时,同时保留java源文件

第一步 创建wsimport生成ws命令行

wsimport -d D:\JAVA\wrokspace\您的项目\src -p com.xx.web -Xauthfile D:\JAVA\wrokspace\您的项目\authfile.txt -keep xxxx:9000/Service.asmx?wsdl

1、通过-d命令指定您的java项目src路径

2、通过-p命令指定需生成包结构(指定之后会自动生成)

3、通过-Xauthfile命令指定访问带有401认证的webservice授权文件(文件路径或文件名可以随意更改 特别简单,请放心)。

如何通过JAVA WSImport生成WEBSERVICE客户端并实现401认证流程图解?

4、通过-keep命令指定webservice路径

第二步 创建授权文件(authfile.txt)

test:123456@192.168.110.21:9000/Service.asmx?wsdl

第三步 在MyEclipse工具中找到对应的项目右键刷新


备注:生成完成之后项目可能会出现错误,将错误稍作修改至没有异常即可。

第四步 尝试调用webservice接口函数并运行项目


出现了 Server returned HTTP response code: 401异常,虽然ws成功导入到项目中了但是项目访问接口的时候没有进行身份认证导致出现该异常。我已经在论坛里面找到这个方法的解决方案,

原链接(参考#10):bbs.csdn.net/topics/370023850

import java.net.Authenticator; import java.net.PasswordAuthentication; public class MyAuthenticator extends Authenticator { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("用户名", "密码".toCharArray()); } }

调用的时候只需要在调用接口之前调用执行该方法即可:

Authenticator.setDefault(new MyAuthenticator());

终于搞定了

直接用HttpURLConnection是不行的,这个默认只是80端口。

最后是用 Java.Net的Authenticator类 把Username和Password直接投过去(他之后对位流的处理遵守http的basic身份验证机制)

代码很短:

import java.net.Authenticator; import java.net.PasswordAuthentication; class MyAuthenticator extends Authenticator { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication ( "username ", "password "); } }

在程序中调用:

Authenticator.setDefault (new MyAuthenticator ());

希望对以后碰到这个问题的人有用

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计731个文字,预计阅读时间需要3分钟。

如何通过JAVA WSImport生成WEBSERVICE客户端并实现401认证流程图解?

wsimport 是 JDK 内置的命令,用于根据 wsdl 文档生成客户端中间代码。基于生成的代码编写客户端,可以省去许多繁琐的步骤。先看两张截图:

1. 使用浏览器打开 webservice 显示的界面:

2.使用 wsimport 生成客户端:

wsimport -s ./src http://example.com/service?wsdl

以上命令将在当前目录下生成客户端代码,便于后续使用。

概述

wsimport是jdk自带的命令,可以根据wsdl文档生成客户端中间代码,基于生成的代码编写客户端,可以省很多麻烦。

先看两张截图:

使用浏览器打开webservice出现的界面:

使用wsimport生成webservice客户端出现401错误:


需用到的命令参数如下:

1. -d <directory> 在指定的目录生成class文件
2. -p <pkg> 指定生成文件的包结构
3. -Xauthfile <filepath> 在格式文件进行授权信息
4. -keep <url> 在生成class文件,或者jar包时,同时保留java源文件

第一步 创建wsimport生成ws命令行

wsimport -d D:\JAVA\wrokspace\您的项目\src -p com.xx.web -Xauthfile D:\JAVA\wrokspace\您的项目\authfile.txt -keep xxxx:9000/Service.asmx?wsdl

1、通过-d命令指定您的java项目src路径

2、通过-p命令指定需生成包结构(指定之后会自动生成)

3、通过-Xauthfile命令指定访问带有401认证的webservice授权文件(文件路径或文件名可以随意更改 特别简单,请放心)。

如何通过JAVA WSImport生成WEBSERVICE客户端并实现401认证流程图解?

4、通过-keep命令指定webservice路径

第二步 创建授权文件(authfile.txt)

test:123456@192.168.110.21:9000/Service.asmx?wsdl

第三步 在MyEclipse工具中找到对应的项目右键刷新


备注:生成完成之后项目可能会出现错误,将错误稍作修改至没有异常即可。

第四步 尝试调用webservice接口函数并运行项目


出现了 Server returned HTTP response code: 401异常,虽然ws成功导入到项目中了但是项目访问接口的时候没有进行身份认证导致出现该异常。我已经在论坛里面找到这个方法的解决方案,

原链接(参考#10):bbs.csdn.net/topics/370023850

import java.net.Authenticator; import java.net.PasswordAuthentication; public class MyAuthenticator extends Authenticator { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("用户名", "密码".toCharArray()); } }

调用的时候只需要在调用接口之前调用执行该方法即可:

Authenticator.setDefault(new MyAuthenticator());

终于搞定了

直接用HttpURLConnection是不行的,这个默认只是80端口。

最后是用 Java.Net的Authenticator类 把Username和Password直接投过去(他之后对位流的处理遵守http的basic身份验证机制)

代码很短:

import java.net.Authenticator; import java.net.PasswordAuthentication; class MyAuthenticator extends Authenticator { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication ( "username ", "password "); } }

在程序中调用:

Authenticator.setDefault (new MyAuthenticator ());

希望对以后碰到这个问题的人有用

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。