CXF: различия между версиями
Перейти к навигации
Перейти к поиску
FireWolf (обсуждение | вклад) (Новая страница: «Создание сервиса с использованием CXF: [http://cxf.apache.org/docs/writing-a-service-with-spring.html CXF with Spring]») |
FireWolf (обсуждение | вклад) |
||
(не показано 11 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
Создание сервиса с использованием CXF: | [[:Категория:Работа]] | ||
= Генерация CXF с использованием Gradle = | |||
https://stackoverflow.com/questions/34955895/cxf-codegen-plugin-port-to-gradle | |||
<syntaxhighlight> | |||
buildscript { | |||
ext { | |||
xjcVersion= '3.0.5' | |||
jaxbOutputDir = "$buildDir/generated/cxf" | |||
jaxb2BasicsVersion = '0.11.0' | |||
} | |||
} | |||
configurations { | |||
cxf | |||
} | |||
apply plugin: 'java' | |||
apply plugin: 'eclipse' | |||
sourceSets { | |||
main { | |||
java { | |||
srcDirs += "$jaxbOutputDir" | |||
} | |||
} | |||
} | |||
task wsdl2java(type: JavaExec) { | |||
ext { | |||
outputDir = file("$jaxbOutputDir") | |||
} | |||
systemProperties = ['javax.xml.accessExternalSchema': 'file' , 'file.encoding':'UTF8'] | |||
outputs.upToDateWhen { false } | |||
outputs.dir outputDir | |||
main = 'org.apache.cxf.tools.wsdlto.WSDLToJava' | |||
classpath = project.configurations.cxf | |||
args '-d', outputDir | |||
args '-fe', 'jaxws21' | |||
args '-client' | |||
args '-verbose' | |||
args '-validate' | |||
args '-mark-generated' | |||
// args '-xjc-X' | |||
args '-xjc-Xfluent-api' | |||
args '-xjc-Xts' | |||
args '-xjc-XhashCode' | |||
args '-xjc-Xequals' | |||
args '-b',"$projectDir/src/main/resources/jaxws-custom-bindings.xjb" | |||
args "$projectDir/src/main/resources/wsdl/myWsdl.wsdl" | |||
doLast { | |||
println "----- cxf jaxb2 files generated -----" | |||
} | |||
} | |||
dependencies { | |||
cxf "org.apache.cxf:cxf-tools-wsdlto-core:$cxfVersion" | |||
cxf "org.apache.cxf:cxf-tools-wsdlto-frontend-jaxws:$cxfVersion" | |||
cxf "org.apache.cxf:cxf-tools-wsdlto-databinding-jaxb:$cxfVersion" | |||
cxf "org.jvnet.jaxb2_commons:jaxb2-fluent-api:3.0" | |||
cxf "org.apache.cxf.xjcplugins:cxf-xjc-ts:$xjcVersion" | |||
cxf "org.jvnet.jaxb2_commons:jaxb2-basics:$jaxb2BasicsVersion" | |||
compile "org.apache.cxf.xjc-utils:cxf-xjc-runtime:$xjcVersion" | |||
compile "org.jvnet.jaxb2_commons:jaxb2-basics-runtime:$jaxb2BasicsVersion" | |||
compile 'commons-lang:commons-lang:2.6' | |||
} | |||
compileJava.dependsOn wsdl2java | |||
</syntaxhighlight> | |||
= Endpoint = | |||
Если endpoint описан без путей, то префикс можно посмотреть в tomcat manager. | |||
Подозреваю, что префикс сервиса по умолчанию есть где-то в коде cxf. | |||
<syntaxhighlight> | |||
<jaxws:endpoint implementor="#messageProvider" | |||
address="/data" | |||
wsdlLocation="/WEB-INF/data.wsdl"> | |||
... | |||
</jaxws:endpoint> | |||
</syntaxhighlight> | |||
implementor="#messageProvider" - означает ref на Spring bean, если указать класс, то он будет являться реализацией для этого endpoint'а. | |||
= Примеры = | |||
Создание сервиса на Spring с использованием CXF: | |||
[http://cxf.apache.org/docs/writing-a-service-with-spring.html CXF with Spring] | [http://cxf.apache.org/docs/writing-a-service-with-spring.html CXF with Spring] | ||
[https://www.ibm.com/developerworks/ru/library/j-jws12/index.html IBM Знакомимся с CXF] | |||
[[Категория:Работа]] | |||
[[Категория:Java]] |
Текущая версия на 16:23, 23 января 2019
Генерация CXF с использованием Gradle
https://stackoverflow.com/questions/34955895/cxf-codegen-plugin-port-to-gradle
buildscript {
ext {
xjcVersion= '3.0.5'
jaxbOutputDir = "$buildDir/generated/cxf"
jaxb2BasicsVersion = '0.11.0'
}
}
configurations {
cxf
}
apply plugin: 'java'
apply plugin: 'eclipse'
sourceSets {
main {
java {
srcDirs += "$jaxbOutputDir"
}
}
}
task wsdl2java(type: JavaExec) {
ext {
outputDir = file("$jaxbOutputDir")
}
systemProperties = ['javax.xml.accessExternalSchema': 'file' , 'file.encoding':'UTF8']
outputs.upToDateWhen { false }
outputs.dir outputDir
main = 'org.apache.cxf.tools.wsdlto.WSDLToJava'
classpath = project.configurations.cxf
args '-d', outputDir
args '-fe', 'jaxws21'
args '-client'
args '-verbose'
args '-validate'
args '-mark-generated'
// args '-xjc-X'
args '-xjc-Xfluent-api'
args '-xjc-Xts'
args '-xjc-XhashCode'
args '-xjc-Xequals'
args '-b',"$projectDir/src/main/resources/jaxws-custom-bindings.xjb"
args "$projectDir/src/main/resources/wsdl/myWsdl.wsdl"
doLast {
println "----- cxf jaxb2 files generated -----"
}
}
dependencies {
cxf "org.apache.cxf:cxf-tools-wsdlto-core:$cxfVersion"
cxf "org.apache.cxf:cxf-tools-wsdlto-frontend-jaxws:$cxfVersion"
cxf "org.apache.cxf:cxf-tools-wsdlto-databinding-jaxb:$cxfVersion"
cxf "org.jvnet.jaxb2_commons:jaxb2-fluent-api:3.0"
cxf "org.apache.cxf.xjcplugins:cxf-xjc-ts:$xjcVersion"
cxf "org.jvnet.jaxb2_commons:jaxb2-basics:$jaxb2BasicsVersion"
compile "org.apache.cxf.xjc-utils:cxf-xjc-runtime:$xjcVersion"
compile "org.jvnet.jaxb2_commons:jaxb2-basics-runtime:$jaxb2BasicsVersion"
compile 'commons-lang:commons-lang:2.6'
}
compileJava.dependsOn wsdl2java
Endpoint
Если endpoint описан без путей, то префикс можно посмотреть в tomcat manager.
Подозреваю, что префикс сервиса по умолчанию есть где-то в коде cxf.
<jaxws:endpoint implementor="#messageProvider"
address="/data"
wsdlLocation="/WEB-INF/data.wsdl">
...
</jaxws:endpoint>
implementor="#messageProvider" - означает ref на Spring bean, если указать класс, то он будет являться реализацией для этого endpoint'а.
Примеры
Создание сервиса на Spring с использованием CXF: