亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在沒有web.xml的情況下注冊Olingo servlet

在沒有web.xml的情況下注冊Olingo servlet

守候你守候我 2021-04-09 09:52:42
可以在Olingo中使用@WebServlet注釋嗎?我想避免在我們的條目中創建條目:web.xml<servlet>    <servlet-name>CarServiceServlet</servlet-name>    <servlet-class>org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet</servlet-class>    <init-param>        <param-name>javax.ws.rs.Application</param-name>        <param-value>org.apache.olingo.odata2.core.rest.app.ODataApplication</param-value>    </init-param>    <init-param>        <param-name>org.apache.olingo.odata2.service.factory</param-name>        <param-value>com.sample.CarServiceFactory</param-value>    </init-param>    <load-on-startup>1</load-on-startup></servlet><servlet-mapping>    <servlet-name>CarServiceServlet</servlet-name>    <url-pattern>/CarService.svc/*</url-pattern></servlet-mapping>該代碼是從olingo-sample存儲庫中獲取的。也許有一種方法@WebInitParams可以創建init參數,但是我必須注釋一下- class X extends ODataServiceFactory?它慷慨地工作嗎?編輯:我正在使用Olingo V2和Tomcat 8。
查看完整描述

1 回答

?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

當然,您可以使用注釋來做到這一點。您將必須創建一個類,該類從注解中擴展CXFNonSpringJaxrsServletinit參數并在其中傳遞@WebServlet。


以下是復制您的代碼的代碼web.xml。


package com.sample;


import java.io.IOException;


import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.annotation.WebInitParam;

import javax.servlet.annotation.WebServlet;


import org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;


/**

 * @author Shiva Saxena

 *

 */

@WebServlet(name = "CarServiceServlet", value = "/CarService.svc/*", initParams = {

    @WebInitParam(name = "javax.ws.rs.Application", value = "org.apache.olingo.odata2.core.rest.app.ODataApplication"),

    @WebInitParam(name = "org.apache.olingo.odata2.service.factory", value = "com.sample.CarServiceFactory") })

public class MyServlet extends CXFNonSpringJaxrsServlet {


    Logger logger = LoggerFactory.getLogger(MyServlet.class);


    private static final long serialVersionUID = -5663461069269732798L;


    @Override

    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {


        // It is not necessory to override this function.Its here just for logging and better understanding 

        logger.info("Call intercepted by:" + this.getClass().getName());

        super.service(req, res);

    }


}


查看完整回答
反對 回復 2021-04-28
  • 1 回答
  • 0 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號