Mkyong 中文博客翻译(十一)
原文:Mkyong
协议:CC BY-NC-SA 4.0
找不到包装类 package.jaxws.methodName。你有没有倾向于生成它们?
原文:http://web.archive.org/web/20230101150211/https://mkyong.com/webservices/jax-ws/wrapper-class-package-jaxws-methodname-is-not-found-have-you-run-apt-to-generate-them/
问题
在 JAX-WS 开发中,当部署以下服务端点时,
文件:HelloWorld.java
package com.mkyong.ws;
//Service Endpoint Interface
@WebService
public interface HelloWorld{@WebMethod String getHelloWorldAsString();
}
文件:HelloWorldImpl.java
//Service Implementation
package com.mkyong.ws;
@WebService(endpointInterface = "com.mkyong.ws.HelloWorld")
public class HelloWorldImpl implements HelloWorld{@Overridepublic String getHelloWorldAsString() {//...}}
它会立即显示以下错误信息?
Exception in thread "main" com.sun.xml.internal.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class com.mkyong.ws.jaxws.GetHelloWorldAsString is not found. Have you run APT to generate them?at com.sun.xml.internal.ws.model.RuntimeModeler.getClass(RuntimeModeler.java:256)//...
解决办法
服务端点接口没有用任何@SOAPBinding
进行注释,因此,它使用默认的文档样式来发布它。为了便于阅读,您可以将其重写如下:
//Service Endpoint Interface
@WebService
@SOAPBinding(style = Style.DOCUMENT, use=Use.LITERAL)
public interface HelloWorld{@WebMethod String getHelloWorldAsString();
}
在文档风格中,您需要使用" wsgen "工具来为服务发布生成所有必要的 JAX-WS 可移植工件(映射类、wsdl 或 xsd 模式)。
wsgen 命令
读取服务端点实现类需要使用 wsgen 命令:
wsgen -keep -cp . com.mkyong.ws.HelloWorldImpl
它在 package.jaxws 文件夹下为单个getHelloWorldAsString()
方法生成两个类。
- gethelloworldasstring.java
- gethelloworlandstrings response . Java
将这些类复制到正确的文件夹中,在本例中是" com.mkyong.ws.jaxws "。请尝试再次发布它。
参考
- wsgen 工具文档
jax-ws web services
为了使用 JSP,您的项目必须配置为使用 JDK
原文:http://web.archive.org/web/20230101150211/http://www.mkyong.com/google-app-engine/your-project-must-be-configured-to-use-a-jdk-in-order-to-use-jsps/
问题
使用 Eclipse 3.7+Google Plugin for Eclipse 来开发 GAE 项目,当在“war”目录下创建一个. jsp 文件时,Eclipse 在 JSP 文件上方显示一个交叉错误图标。
在 Eclipse problem 视图中,它显示"为了使用 JSP,您项目必须被配置为使用 JDK。”。
解决办法
要解决这个问题,改变你的 Eclipse 安装的 JRE,并把它指向你的 JDK 文件夹。在 Eclipse 菜单中,选择 Windows - > 首选项 - > Java - > 已安装 JREs ,添加您的 JDK 文件夹并选中它。
P.S JSP 需要 JDK“javac”来编译,而 JRE 中并不存在。
## 参考
- 使用 JDK 以便使用 JSP 解决谷歌应用引擎问题
gae jdk jsp