标签:cli jdk1.8 端口 ima 使用 serve tty jdk7 应该
问题1.wsimport不是内部或外部命令
今天执行wsimport时报了wsimport报了不是内部或外部命令的错误,第一反应是检查环境变量,没发现什么问题,执行java -version也正常,突然想起
上次为了测试maven似乎改动了JAVA_HOME的值,于是把G:\java\jdk\jre改为G:\java\jdk,重新执行wsimport后正常,出现这种错误第一反应就应该是环境
变量的问题,即使你像我一样测试java -version正常也不能掉以轻心,网上还有种说法是和你的环境变量配置成用户变量会导致如题的错误,亲测没有半毛钱
关系.
问题2:404问题
我操作的时候碰到了一个奇怪的问题,输入ip:端口/xxx?wsdl可以正常访问,然而ip:端口/xxx就404,最后发现是jdk版本的问题,把server端与clicent端均换成
jdk7就可以正常访问了(注意两端都要更换),使用jdk8访问wsdl文件没问题,但是访问ip:端口/xxx就会404
问题3:soap1.2的问题
如果使用jdk1.7并在server端接口的的实现类上使用@BindingType(SOAPBinding.SOAP12HTTP_BINDING)注解即指定使用soap1.2那么会报如下错误
解决方法添加jaxws-ri.jar即可,但如果使用jdk1.8就不会出现这个问题了
问题4:设置的代理不显示请求与回复的内容,但是可以通过代理正常访问到wsdl文件
遇到这种情况,最大的可能性就是你的client请求服务时没有使用你设置的代理,先在你的wsdl文件最下面找到service节点,查看其name,然后去你的开发工具中
找到与service节点的name同名的java文件,在那个文件中把地址修改为你设置的代理地址(有两处需要修改)
问题5:@WebService的endpointInterface属性的作用
此属性并非必须,设置此属性的值为接口的全限定名时,在生成的wdsl文件中的porttype下的operation节点中就只会出现接口中定义的public方法
如果不使用这个属性,在生成的wsdl文件中不仅会出现接口的public方法,还会额外出现实现类自己定义的public方法,或者理解为实现类的全部public方法集
还有一种情况是把这个属性的值设置为本实现类自身的全限定名时,如你所料,此时在wsdl文件中发布了本来全部的public方法
事实上@WebMethod也并非必须的注解,只要在某个类或者接口上使用@WebService注解其下的public方法都会被发布
先写这么多吧,后面如果还有再补充
标签:cli jdk1.8 端口 ima 使用 serve tty jdk7 应该
原文地址:https://www.cnblogs.com/tele-share/p/9314796.html