Разница между страницами «CXF» и «JMC»

Материал из Home Wiki
(Различия между страницами)
Перейти к навигации Перейти к поиску
 
 
Строка 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]]

Версия 12:54, 26 ноября 2020

Видео: https://www.youtube.com/watch?v=wm2JNlaJJ5k

GIST: https://gist.github.com/aragozin/6ac622de6328a1b6ee58a1bf6f2e523d

JMC: https://download.oracle.com/otn-pub/java/jmc/7.1.2+04/a4634525489241b9a9e1aa73d9e118e6/jmc-7.1.2_windows-x64.zip

Для подключения к weblogic нужно докинуть wlclient.jar, wljmxclient.jar в катоалог с jmc и настроить jmc.ini:

-Djmx.remote.protocol.provider.pkgs=weblogic.management.remote -Djava.naming.factory.initial=weblogic.jndi.WLInitialContextFactory -Xbootclasspath/a:wlclient.jar;wljmxclient.jar