问题标签 [wsgen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
9306 浏览

java - 未找到 Wsgen 类

我对 wsgen 没什么问题,每次使用它时,都会出现错误“找不到类”。我想将它用于目录 webservices 中的 StudentServiceEndpoint 类。有什么想法我应该怎么做?

这是我的目录结构的图片:http: //img198.imageshack.us/img198/4274/5g8.png

http://img441.imageshack.us/img441/737/eo4.png

PS。对不起我的英语;p

编辑:我编辑了图像。

0 投票
1 回答
776 浏览

java - maven 中生成的 Web 服务不支持 major.minor 版本 51.0

我已经进行了研究,知道这个错误意味着“我使用更新版本的 java 编译而不是运行代码”。这里的不同之处在于,给我错误的代码是由jaxws-maven-plugin插件生成的。我不知道如何在该插件上设置编译目标/源,所以我不知道如何解决这个问题。如何设置此插件的目标版本?

0 投票
1 回答
413 浏览

java - jax-ws:“wsgen”工具中的“keep”标志到底有什么作用?

keep工具中的标志到底有什么作用wsgen?我正在使用 Oracle Java 7 (at:) 附带的默认命令行实现/usr/lib/jvm/java-7-oracle/bin/wsgen

文档说:“保留生成的文件”但是我两种都试过了:

并且生成的文件总是被覆盖(Java 客户端存根文件和 wsdl 文件)。wsgenAnt 任务显示了相同的行为- 该keep属性似乎不会产生任何效果,无论是true还是false.

0 投票
3 回答
792 浏览

web-services - 使用 wsgen 和 @Interceptors 导致 --> 不支持的 major.minor 版本 51.0

我有一个打包在耳朵上的 Java EE 项目。耳朵包含一个 Jar,我在其中打包了我的 @stateless EJB 和其他非托管类(我的模型、实用程序等)。对于其中一些 EJB,我使用 Jax-W 将它们的功能公开为 Web 服务。

我尝试使用 AOP 创建日志记录机制,因此我将 @Interceptors 注释放在我的 Jax-Ws 驱动的 EJB 中。问题是当我尝试使用 maven 编译/构建/打包时,我收到以下异常。当我将 @Interceptors 注释放在 NON Jax-ws 注释的 EJB 中时,似乎问题是特定于 wsgen 的,它编译并运行没有任何问题。我使用 JAva 构建 1.6.0_41-b02。

我还试图找到 javax.interceptor-api 的旧版本(可能在 Java 1.6 中编译,因为major.minor 版本 51.0 意味着它已经在 J​​SE 7 中编译,如果我理解正确的话)但似乎 1.2 是旧版本一。

我的pom(部分):

我的豆子(部分)

0 投票
0 回答
9857 浏览

java - 使用 wsgen 生成 JAX-WS Web 服务相关类、WSDL 和 XSD

我正在 Eclipse 中试用 Hello World JAX-WS Web 服务(文档样式,而不是 RPC)。我正在关注这个 tut

这是我的项目设置:

在此处输入图像描述

现在我想创建用于部署 Web 服务的 Web 服务支持类,wsgen如 tut 中所述。因此,在 Windows 命令提示符中,我导航到了我的应用程序的 bin 目录(>cd bin),然后执行了给定的命令:

在此处输入图像描述

所以在bin\com\Mahesh\ws\jaxws它创建了以下四个文件

  • GetHelloWorldAsString.class
  • GetHelloWorldAsString.java
  • GetHelloWorldAsStringResponse.class
  • GetHelloWorldAsStringResponse.java

由于源文件放在bin\com\Mahesh\ws\jaxws文件夹中而不是放在文件夹中,因此src\com\Mahesh\ws\jaxws在 Eclipse 中进行包刷新不会在包资源管理器中显示新生成的源文件

1.我希望这些源文件生成在src\com\Mahesh\wssrc一个空包中,您可以在第一张图片中看到。

2.当我发布这个 Web 服务并看到它的 WSDL 文件时,我意识到在幕后创建了一个单独的 XSD。所以我想使用 wsgen 创建这个 WSDL 和 XSD 并将它放在另一个空包src\com\Mahesh\rsc中,你可以在第一张图片中看到。

在阅读wsgen了'帮助后,我发现了这两个选项:

  • -r <directory>: 资源目标目录,指定放置资源文件(如 WSDL)的位置
  • -s <directory>: 指定放置生成的源文件的位置

但是我仍然无法弄清楚如何做到这一点。

3.还说:

等等,当您运行端点发布者时,您将遇到以下错误消息: Wrapper class com.mkyong.ws.jaxws.GetHelloWorldAsString is not found. Have you run APT to generate them?

但是,我没有收到任何此类错误,并且我的端点发布时没有任何错误。因此,我们是否仍然需要显式生成用于 Web 服务部署的类,wsgen或者这由 JAX-WS 内部处理。

0 投票
1 回答
3080 浏览

java - 使用 wsgen 时找不到类/错误名称

我遇到了一个问题,wsgen虽然我已经看到了一些有效的答案,但这些解决方案似乎都不适合我。我相信这个问题与源代码和二进制文件的结构有关。

我的WSTest项目设置有以下文件夹:

主类Test位于 package 中com.example.ws

我正在使用以下命令wsgen从主项目文件夹运行:WSTest

这导致:

线程“主”java.lang.NoClassDefFoundError 中的异常(错误名称:com/example/ws/Test)

这是有道理的,因为类是包的一部分。因此,我将命令更改为以下内容:

wsgen但现在我从工具中找不到类:

找不到类:“com.example.ws.Test”

用法:WSGEN [选项]

我错过了什么?

0 投票
3 回答
17516 浏览

java - Maven:执行 wsgen 时未找到 tools.jar

我尝试jaxws:wsgen从 Windows 8 命令行使用 maven 插件,但它失败了:

java.lang.ClassNotFoundException: com.sun.mirror.apt.AnnotationProcessorFactory

我知道这表明 Maven 在我的 JDK 中找不到 tools.jar,但我不知道如何添加它(当然安装了 JDK)。

以下是有关我的配置的一些详细信息:

所以我也尝试在我的 pom.xml 中添加一个配置文件部分:

并执行

但我仍然得到ClassNotFoundException.

完整输出:

[错误] 无法在项目 WebService 上执行目标 org.codehaus.mojo:jaxws-maven-plugin:1.10:wsgen (generate-wsdl):无法执行 wsgen:com/sun/mirror/apt/AnnotationProcessorFactory:com.sun。 mirror.apt.AnnotationProcessorFactory -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: 无法在项目 WebService 上执行目标 org.codehaus.mojo:jaxws-maven-plugin:1.10:wsgen (generate-wsdl):失败在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) 执行 wsgen。 maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 在 org.apache.maven 的 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) .lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317) 在 org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152) 在org.apache.maven.cli.MavenCli.execute(MavenCli.java:555) 在 org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214) 在 org.apache.maven.cli.MavenCli.main( MavenCli.java:158) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher .java:289) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 在 org. codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 原因:org.apache.maven.plugin.MojoExecutionException:无法在 org.codehaus.mojo.jaxws.AbstractWsGenMojo.execute(AbstractWsGenMojo. java:102) 在 org.apache.maven.plugin.DefaultBuildPluginManager 的 org.codehaus.mojo.jaxws.MainWsGenMojo.execute(MainWsGenMojo.java:14)。executeMojo(DefaultBuildPluginManager.java:106) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) ... 19 更多原因:java.lang.NoClassDefFoundError: com/sun/mirror/apt /AnnotationProcessorFactory at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader .defineClass(URLClassLoader.java:449) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:71) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:361) 在 java.net.URLClassLoader$1.run (URLClassLoader.java:355) 在 java.net.URLClassLoader 的 java.security.AccessController.doPrivileged(Native Method)。findClass(URLClassLoader.java:354) 在 org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:389) 在 org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)在 org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:259) 在 org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:235) 在 org.codehaus.plexus.classworlds .realm.ClassRealm.loadClass(ClassRealm.java:227) at com.sun.tools.ws.WsGen.doMain(WsGen.java:69) at org.codehaus.mojo.jaxws.AbstractWsGenMojo.execute(AbstractWsGenMojo.java:97 ) ... 22 更多原因:java.lang.ClassNotFoundException: com.sun.mirror.apt.AnnotationProcessorFactory at org.codehaus.plexus.classworlds.strategy。SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:259) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java: 235) 在 org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:227) ... 还有 38 个

也将其tools.jar放入我的本地存储库并没有解决我的问题。

有人知道接下来要尝试什么吗?

谢谢!

0 投票
2 回答
2119 浏览

command-line - 由于类路径长,使用 Maven 的 jaxws wsgen 插件时命令行参数太长

我正在尝试使用org.jvnet.jax-ws-commons jaxws-maven-pluginandwsgen目标生成 Web 服务工件。似乎该过程的一部分是执行一个包含类路径上所有项目 jar 的命令,这导致命令超出命令行字符限制的两倍以上(在 Windows 7 上)。我该如何解决这个问题?

0 投票
1 回答
7577 浏览

web-services - apt vs wsgen vs wsimport。关于何时使用什么以及为什么不使用另一个的困惑

我一直在尝试编写一个 Web 服务 (JAX-WS),并且我已经阅读了从 2006 年到 2013 年的许多教程。它们中的大多数都与某些 IDE 有关。那些谈论手动创建/部署 Web 服务的都是 ant 脚本。到这里一切都很好。

在我检查 ant 脚本的那一刻,混乱就开始了。一些旧教程使用 APT 任务编译 SEI,然后使用 wsgen 生成工件。较新的仅使用 wsgen (尽管 APT 在 ant 脚本中被定义为 taskdef)。此外,正如我一直在阅读有关 JAVA 7 文档的内容,它说您不需要使用 wsgen,因为 javac 本身会执行所有编译和工件请求。for WS 是在运行时动态生成的。

我尝试在 SEI 上使用 javac 命令并将其部署在 tomcat 上,但它不起作用。

任何人都可以澄清我需要在 JAVA SE 7 版本中使用哪些命令来部署 Web 服务。

另外,我想知道每个命令生成什么以及何时使用哪些命令。

据我所知,开发和部署不需要wsimport,只需要构建WS-client。它是否正确?如果没有,请给我指点以清除我的理解。

提前致谢

另外,如果我重复我自己,那么对不起,因为我是 StackOverflow 的新手并且对此不太熟悉。:)

0 投票
1 回答
3593 浏览

java - wsgen '找不到类'

这是我的java项目的设置

在此处输入图像描述

我正在尝试通过 cmd 运行 wsgen:

wsgen -keep -cp . com.library.webservice.HelloWorldImplementation

但我得到了错误

Class not found: "com.library.webservice.HelloWorldImplementation"

此外,该命令从C:\ ... \WebServices Test\src

知道我做错了什么吗?