webservice實(shí)現(xiàn)與調(diào)用(基于Spring的多種方式)

一聚蝶、Webservice實(shí)現(xiàn)

實(shí)現(xiàn)方式分類

1. spring實(shí)現(xiàn)

  • bean配置
<bean class="org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter">
        <property name="baseAddress" value="http://localhost:8088/"/>
    </bean>
  • service
@Component
@WebService(serviceName="sapPushExpenseWebservice")
public class SapPushExpenseWebservice  {
    private static Logger logger = LoggerFactory.getLogger(SapPushExpenseWebservice.class);
    @WebMethod
    public Result<Object> pushExpense(@WebParam(name="expenseDTOSet") Set<String> expenseDTOSet) {
        logger.info(JSON.toJSONString(expenseDTOSet));
        return null;
    }
}

2. spring boot實(shí)現(xiàn)

  • Cxf boot配置
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxws</artifactId>
    <version>3.1.6</version>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-transports-http</artifactId>
    <version>3.1.6</version>
</dependency>
@Configuration
public class SapCxfConfig {

    @Bean
    public ServletRegistrationBean dispatcherServlet() {
        return new ServletRegistrationBean(new CXFServlet(), "/sap/soap/*");
    }
    @Bean(name = Bus.DEFAULT_BUS_ID)
    public SpringBus springBus() {
        return new SpringBus();
    }

    @Bean
    public ISapPushExpenseWebservice sapPushExpenseWebservice() {
        return new SapPushExpenseWebservice();
    }
    @Bean
    public Endpoint endpoint() {
        EndpointImpl endpoint = new EndpointImpl(springBus(), sapPushExpenseWebservice());
        endpoint.publish("/push");
        return endpoint;
    }

}
  • service實(shí)現(xiàn)
@WebService
public interface ISapPushExpenseWebservice {
    @WebMethod
    Result<Object> pushExpense(Set<SapExpenseDTO> expenseDTOSet);

}

public class SapPushExpenseWebservice implements ISapPushExpenseWebservice {

    private static Logger logger = LoggerFactory.getLogger(SapPushExpenseWebservice.class);

    @Autowired
    private ISapExpenseService sapExpenseService;

    @Override
    public Result<Object> pushExpense(Set<SapExpenseDTO> expenseDTOSet) {
        logger.info(JSON.toJSONString(expenseDTOSet));
        return sapExpenseService.pushExpense(expenseDTOSet);
    }

}

3. dubbo實(shí)現(xiàn)

* http://blog.csdn.net/u012129031/article/details/53259877

二弓千、Webservice調(diào)用

cxf客戶端生產(chǎn)代碼

  • 下載地址
http://cxf.apache.org/
  • 生成代碼
遠(yuǎn)程生成
./wsdl2java -d /Users/moxingwang/Desktop/soap -client http://localhost:8080/sap/soap/user?wsdl
本地生成
./wsdl2java -p com.chinaredstar.bill.integration.demo.test -d /Users/moxingwang/Desktop/soap /Users/moxingwang/Desktop/ss.xml

使用代理調(diào)用

  • 依賴jar
 <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-frontend-jaxws -->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>3.1.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>3.1.9</version>
        </dependency>
  • 調(diào)用代碼
1.第一種方式調(diào)用
public class Test {

    public static void main(String[] args) {

        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        Client client = dcf.createClient("http://192.168.224.182:8088/sapPushExpenseWebservice?wsdl");
        try {
            List<String> list = new ArrayList<>();
            list.add("測試");

            Object[] objects = client.invoke("pushExpense", list);

            System.out.println(JSON.toJSONString(objects[0]));

        }catch (Exception e){
            e.printStackTrace();
        }

    }

}
2.第二種方式調(diào)用
        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
        factory.setServiceClass(SIZFIFMECSRECEIVEOS.class);
        factory.setUsername("ZWS_ECS");
        factory.setPassword("abcd1234");
        factory.setAddress("http://172.16.3.21:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_NREM&receiverParty=&receiverService=&interface=SI_ZREI_BAPI_RE_CN_OVER_OS&interfaceNamespace=http%3A%2F%2Fchinaredstar.com%2Fecc2oms");
        SIZFIFMECSRECEIVEOS port = (SIZFIFMECSRECEIVEOS) factory.create();

        ZFIFMECSRECEIVE zfifmecsreceive = new ZFIFMECSRECEIVE();
        zfifmecsreceive.setICBUTYNUM("121221");
        TABLEOFZMMFIFMCOMONOUTNEW tableofzmmfifmcomonoutnew = new TABLEOFZMMFIFMCOMONOUTNEW();

        zfifmecsreceive.setETBELNR(tableofzmmfifmcomonoutnew);

        ZFIFMECSRECEIVEResponse a = port.siZFIFMECSRECEIVEOS(zfifmecsreceive);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖羞延,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異脾还,居然都是意外死亡伴箩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門鄙漏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嗤谚,“玉大人棺蛛,你說我怎么就攤上這事」剑” “怎么了旁赊?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長椅野。 經(jīng)常有香客問我终畅,道長,這世上最難降的妖魔是什么竟闪? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任离福,我火速辦了婚禮,結(jié)果婚禮上炼蛤,老公的妹妹穿的比我還像新娘妖爷。我一直安慰自己,他們只是感情好理朋,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布絮识。 她就那樣靜靜地躺著,像睡著了一般嗽上。 火紅的嫁衣襯著肌膚如雪次舌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天炸裆,我揣著相機(jī)與錄音垃它,去河邊找鬼。 笑死烹看,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的洛史。 我是一名探鬼主播惯殊,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼也殖!你這毒婦竟也來了土思?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤忆嗜,失蹤者是張志新(化名)和其女友劉穎己儒,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捆毫,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡闪湾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绩卤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片途样。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡江醇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出何暇,到底是詐尸還是另有隱情陶夜,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布裆站,位于F島的核電站条辟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏宏胯。R本人自食惡果不足惜羽嫡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胳嘲。 院中可真熱鬧厂僧,春花似錦、人聲如沸了牛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鹰祸。三九已至甫窟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蛙婴,已是汗流浹背粗井。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留街图,地道東北人浇衬。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像餐济,于是被迫代替她去往敵國和親耘擂。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,811評(píng)論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理絮姆,服務(wù)發(fā)現(xiàn)醉冤,斷路器,智...
    卡卡羅2017閱讀 134,657評(píng)論 18 139
  • vhjhhuisnwbbjjsjbbdbjsjj
    仇志軒閱讀 136評(píng)論 0 5
  • 文/孤鳥差魚 有時(shí)候 一個(gè)人的事 一不小心 就變成一堆人的事 他們?yōu)槟憔奂谝黄?為你謀劃 可你 卻連個(gè)插話的機(jī)會(huì)...
    孤鳥差魚閱讀 266評(píng)論 2 3
  • 本文章翻譯自官方文檔 使用instancetype關(guān)鍵字作為方法的返回值篙悯,能夠返回一個(gè)類的實(shí)例蚁阳。比如alloc,i...
    mieGod閱讀 637評(píng)論 1 1