草庐IT

IDEA根据wsdl生成java代码(Generate Java Code from WSDL)以及乱码问题的解决

fengxingke 2024-05-03 原文

目录

一、根据wsdl生成java代码

1、创建待存放java代码的目录,点击“帮助”=>“查找操作”,打开查找窗口;

2、输入wsdl并查找,点击“从WSDL生成Java代码”,打开新的窗口;

3、选择wsdl文件,并选择输出路径,点击确定即可生成java代码。

二、解决乱码问题

乱码原因:

解决方法:

1、将乱码的文件夹设置为GBK,保证文件夹下的文件再打开不会显示乱码:

2、选择某个GBK文件,点击IDEA右下角GBK,改为UTF-8,在弹出框里选择“转换”;

3、将文件夹下所有文件改为UTF-8之后,再在“设置”里将文件夹的文件编码由GBK改为UTF-8,即达到将该目录下全部GBK文件转为UTF-8文件,,并且用IDEA打开也不再乱码。

 4、可借助EmEditor文本编辑器批量将GBK转为UTF-8,使用EmEditor打开全部待转编码的文件,然后点击“文件”=>“以指定编码全部保存”。

5、终极解决办法:

6、wsimport.exe常用命令组合


一、根据wsdl生成java代码

        看了很多博文都是在Tool里有个WebServices,我的IDEA是2021版,工具菜单下没有WebServices。好像是较新的版本都没有。

不用太纠结这个问题,参考以下步骤可实现相同功能:

1、创建待存放java代码的目录,点击“帮助”=>“查找操作”,打开查找窗口;

2、输入wsdl并查找,点击“从WSDL生成Java代码”,打开新的窗口;

3、选择wsdl文件,并选择输出路径,点击确定即可生成java代码。

二、解决乱码问题

乱码原因:

        乱码是因为文件编码不一致,Win10默认字符编码为936(GBK),导致IDEA根据wsdl生成的java文件编码为GBK,而如果IDEA设置了全局/项目编码为UTF-8,这时打开文件就会乱码。

解决方法:

        可修改IDEA配置,单独将乱码文件配置为GBK也能解决乱码问题,但是文件太多时很不方便。可借助EmEditor文本编辑器统一将所有选中的GBK文件转为UTF-8。

具体解决步骤如下:

1、将乱码的文件夹设置为GBK,保证文件夹下的文件再打开不会显示乱码:

2、选择某个GBK文件,点击IDEA右下角GBK,改为UTF-8,在弹出框里选择“转换”;

3、将文件夹下所有文件改为UTF-8之后,再在“设置”里将文件夹的文件编码由GBK改为UTF-8,即达到将该目录下全部GBK文件转为UTF-8文件,,并且用IDEA打开也不再乱码。

 4、可借助EmEditor文本编辑器批量将GBK转为UTF-8,使用EmEditor打开全部待转编码的文件,然后点击“文件”=>“以指定编码全部保存”。

5、终极解决办法:

        修改Windwos系统默认字符编码,由GBK改为UTF-8。

参考地址:

win10怎么设置系统默认编码为UTF-8

理想很丰满,现实很骨感,改了系统默认编码后根据wsdl生成的java代码还是有乱码。

继续往下看...

继续研究,IDEA默认使用的生成工具,就是JDK文件夹bin目录下“wsimport.exe”工具。

这个wsimport.exe工具生成代码时,不是取的系统当前字符编码,而是统一默认为GBK(估计和当前系统语言还是有一定关系的,至少知道是简体中文)。

所以要想自动生成的文件编码为UTF-8,需要在执行命令时,加上字符集。

打开命令提示符窗口,cd进入wsimport.exe所在路径,执行如下命令:

wsimport -encoding utf-8 -keep -s D:\temp -p com.lawyer.user -verbose http://服务地址?wsdl  

参数说明:

-encoding : 指定编码格式

-keep:是否生成java源文件

-d:指定.class文件的输出目录

-s:指定.java文件的输出目录,   此目录必须存在

-p:定义生成类的包名,不定义的话有默认包名

-verbose:在控制台显示输出信息

-b:指定jaxws/jaxb绑定文件或额外的schemas

-extension:使用扩展来支持SOAP1.2

6、wsimport.exe常用命令组合:

wsimport -encoding utf-8 -s D:\demo -p com.packagename -verbose D:/wsdl/test.wsdl

以UTF-8编码生成,且只生成.java文件,不生产.class文件,生成类的包名为“com.packagename”,在控制台显示输出信息,wsdl文件为“test.wsdl”。

注意、注意、注意:报以上错误是因为没有以管理员身份运行cmd。

还要注意wsdl文件所在路径中不要有中文。

有关IDEA根据wsdl生成java代码(Generate Java Code from WSDL)以及乱码问题的解决的更多相关文章

  1. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  2. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  3. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  4. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  5. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  6. ruby-on-rails - Rails 源代码 : initialize hash in a weird way? - 2

    在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has

  7. ruby - 在 jRuby 中使用 'fork' 生成进程的替代方案? - 2

    在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',

  8. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  9. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  10. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

随机推荐