相关疑难解决方法(0)

如何使cxf-xjc-plugin在utf-8中生成源代码

我尝试使用cxf-xjc-plugin在maven项目中从xsd生成java类.

它运行正常,但生成的源文件获得特定于平台的编码(在Windows PC上为cp1251)而不是utf-8.如果任何xsd类型在模式注释中包含非拉丁字符,那么它们仅在该特定编码中变得可读,并且编译器稍后会抱怨[WARNING] /C:/.../SomeType.java:[17,4] unmappable character for encoding UTF-8.

请帮助我强制utf-8生成源代码.

源编码设置为

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Run Code Online (Sandbox Code Playgroud)

构建插件的设置如下:

<build>
    ...
    <plugin>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-xjc-plugin</artifactId>
        <version>2.7.0</version>
        <configuration>
            <extensions>
                <extension>org.apache.cxf.xjcplugins:cxf-xjc-dv:2.7.0</extension>
                <extension>net.java.dev.jaxb2-commons:jaxb-fluent-api:2.1.8</extension>
            </extensions>
        </configuration>
        <executions>
            <execution>
                <id>generate-sources</id>
                <phase>generate-sources</phase>
                <goals>
                    <goal>xsdtojava</goal>
                </goals>
                <configuration>
                    <sourceRoot>${basedir}/target/generated-sources</sourceRoot>
                    <xsdOptions>
                        <xsdOption>
                            <extension>true</extension>
                            <xsd>${basedir}/src/main/resources/schemas/Policy.xsd</xsd>
                            <bindingFile>${basedir}/src/main/resources/schemas/Policy.xjb</bindingFile>
                            <extensionArgs>
                                <extensionArg>-Xdv</extensionArg>
                                <extensionArg>-Xfluent-api</extensionArg>
                            </extensionArgs>
                        </xsdOption>
                    </xsdOptions>
                </configuration>
            </execution>
        </executions>
    </plugin>
...
Run Code Online (Sandbox Code Playgroud)

在阅读了xjc的一些旧问题之后,特别是CXF-4369JAXB-499我尝试使用maven项目属性强制编码<file.encoding>utf-8</file.encoding>并在运行时设置系统属性mvn -Dfile.encoding=utf-8 clean install,但无处可去.

java encoding cxf xjc maven

8
推荐指数
1
解决办法
8423
查看次数

在 java 11 中从 wsdl 生成类

如何使用 gradle 5 从 Java 11 中的 WSDL 生成类?

我正在使用 wsimport seeber 插件,但它看起来在 java 11 中不起作用

dependencies {
            classpath "gradle.plugin.me.seeber.gradle:gradle-wsimport-plugin:1.1.1"
}
Run Code Online (Sandbox Code Playgroud)

在 Intelij Idea 我得到:

  • 出了什么问题:配置项目“:ReturnRedirectWorker-api”时出现问题。

    执行模型规则时抛出异常:WsimportPlugin.PluginRules#createWsdlSourceSets(ModelMap, FileOperations) > create(wsdlMain) > create(wsdl) 无法创建 WsdlSourceSet 类型的 LanguageSourceSet

java wsdl gradle java-11

2
推荐指数
1
解决办法
2840
查看次数

来自 jaxws-tools:3.0.0 的 Wsimport 在 ClassNotFoundException 上崩溃

当我将 jaxws-tools 升级到 3.0.0 时,我的 wsimport Gradle 任务开始因 ClassNotFoundException 崩溃。

我有一个使用 Springinitializr 创建的简单 Gradle 项目。我其中有一个 wsimport 任务,是我根据 gradle wsimport问题以及其他来源创建的。build.gradle 如下所示

plugins {
    id 'org.springframework.boot' version '2.4.2'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
    jaxws
}

task wsimport {
    description = 'Generate classes from wsdl using wsimport'

    def wsdlFile = file("${projectDir}/src/main/resources/soap/wsdl/hello.wsdl")
    ext.classesDir = "${buildDir}/classes/generated"

    doLast {
        ant {
            mkdir(dir: classesDir)

            taskdef(name: 'wsimport',
                    classname: 'com.sun.tools.ws.ant.WsImport',
                    classpath: configurations.jaxws.asPath
            )
            wsimport(
                    destdir: …
Run Code Online (Sandbox Code Playgroud)

java jax-ws wsimport gradle

2
推荐指数
1
解决办法
4472
查看次数

标签 统计

java ×3

gradle ×2

cxf ×1

encoding ×1

java-11 ×1

jax-ws ×1

maven ×1

wsdl ×1

wsimport ×1

xjc ×1