我创建了网络服务
@WebService(serviceName = "DynamipsService2")
@Stateless()
public class DynamipsService2 {
@WebMethod(operationName = "StartSession")
public static String StartSession(@WebParam(name = "key") String key) {
try {
return "100-Session started";
} catch (Exception ex) {
return null;
}
}
}
我想在页面上测试 http://localhost:8080/DynamipsService2/DynamipsService2?Tester崩溃错误
生成工件的错误 遵循WSDL http://localhost:8080/DynamipsService2/DynamipsService2?WSDL
可能的原因可能是调用https 何时未配置应用程序 为了安全
我在同一个程序集中创建了其他Web服务,但它确实有效。
答案 0 :(得分:2)
我刚刚遇到过这个问题。我的解决方案是在测试程序的URL中使用我的主机名而不是localhost。
因此,在我的情况下,以下是NetBeans / Glassfish在NetBeans UI中单击“测试Web服务”时默认执行的操作,不工作:
http://localhost:8080/Calculator/Calculator?Tester
但是,当我将以下内容粘贴到浏览器中时,它 工作:
http://david-pc:8080/Calculator/Calculator?Tester
我无法弄清楚如何更改NetBeans用于内置测试对话框的主机名(也不能从错误对话框中剪切+粘贴URL)。因此,我不得不将错误消息中的URL直观地复制到浏览器中,并在此过程中替换主机名。
答案 1 :(得分:1)
我在服务器日志中遇到了同样的问题和原因。我正在使用Glassfish 3.1和netBeans 7.而我在Glassfish输出中得到的错误是: INFO:[ERROR] com.sun.tools.javac.Main在类路径中不可用,需要Suns JDK 5.0或更高版本。
我google了一下,似乎是因为glassfish服务器正在使用ubuntu附带的openjdk。如果您的问题与我发现的解决方案相同,那就是删除openjdk jre,如下所示:
sudo apt-get remove openjdk-6-jre sudo apt-get autoremove
希望这很有用。
PS:我在netBeans中的服务器配置向导的java选项卡中分配了/ usr / lib / jvm / java-6-sun / bin / java但是不知道这是否是解决方案的一部分(我是害怕改变它:p)
答案 2 :(得分:1)
我遇到了与Glassfish相同的问题
但由于NAT
,它更加复杂我在NAT中有GF - 做MYDOMAIN并将端口重定向到内部机器
GF中的问题是它试图通过域名连接到自己,域名再次重定向到网络内部 (?wsdl正常工作)
我已将临时解决方案添加到/ etc / hosts(127.0.0.1 domainname)
请注意,这只是一个临时解决方案
尝试检查主机文件中是否有“localhost”(在windows c:/ windows / system32 / drivers / etc / hosts中) 并ping localhost
我将添加GF日志 - 也许有人将来会通过谷歌搜索:) :) 而且我看了GF日志有类似的东西 - >
Connection timed out
Failed to read the WSDL document: http://MYDOMAIN:8080/MYSERVICE?WSDL, because 1) could not find the document; /2) the document could not be read; 3) the root element of the document is not <wsdl:definitions>.
failed.noservice=Could not find wsdl:service in the provided WSDL(s):
At least one WSDL with at least one service definition needs to be provided.
Failed to parse the WSDL.
答案 3 :(得分:0)
您使用的是哪个网络服务器?如果您使用glassfish,您可以打开服务器管理页面并选择Configurations===>server-config===>Security
并启用安全管理器
答案 4 :(得分:0)
检查您的域名/ {YOUR_DOMAIN} /config/domain.xml
如果使用Eclipse设置Glassfish,将自动为您完成所有操作。
现在我很惊讶,如果我从命令行启动域,它给了我这个错误,但是从Eclipse启动Glassfish 4,它没有显示任何问题。
答案 5 :(得分:0)
一个原因可能是您没有正确配置环境变量JAVA_HOME(使用正确的路径)并且JAVA_HOME / bin目录也添加到全局PATH环境变量中。对于某些进程,glassfish会查找已安装的JDK的类路径。 希望这有帮助。
答案 6 :(得分:0)
我有完全相同的问题,这是因为你有一个静态方法,我在调试一段时间后意识到。只需从方法中删除静态,它应该工作。
@WebMethod(operationName = "StartSession")
public String StartSession(@WebParam(name = "key") String key) {
try {
return "100-Session started";
} catch (Exception ex) {
return null;
}
}