|
|
Строка 1: |
Строка 1: |
| [[:Категория:Работа]]
| | Видео: https://www.youtube.com/watch?v=wm2JNlaJJ5k |
|
| |
|
| = Генерация CXF с использованием Gradle =
| | GIST: https://gist.github.com/aragozin/6ac622de6328a1b6ee58a1bf6f2e523d |
| 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 {
| | JMC: https://download.oracle.com/otn-pub/java/jmc/7.1.2+04/a4634525489241b9a9e1aa73d9e118e6/jmc-7.1.2_windows-x64.zip |
| cxf
| |
| }
| |
|
| |
|
| apply plugin: 'java'
| | Для подключения к weblogic нужно докинуть wlclient.jar, wljmxclient.jar в катоалог с jmc и настроить jmc.ini: |
| apply plugin: 'eclipse'
| |
|
| |
|
| | | <nowiki> |
| sourceSets {
| | -Djmx.remote.protocol.provider.pkgs=weblogic.management.remote |
| main {
| | -Djava.naming.factory.initial=weblogic.jndi.WLInitialContextFactory |
| java {
| | -Xbootclasspath/a:wlclient.jar;wljmxclient.jar |
| srcDirs += "$jaxbOutputDir"
| | </nowiki> |
| }
| |
| }
| |
| }
| |
| | |
| 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]
| |
| [[Категория:Работа]]
| |
| [[Категория:Java]]
| |