新人求助,非maven,非springboot專案使用swagger2
上個禮拜老大分配任務給我,公司專案需要生成介面文件,在網上找了許多文章,嘗試過各種辦法依舊無法讀取
先上圖:
這是SwaggerConfig.java的內容:
package com.fh.swagger; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.context.request.async.DeferredResult; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableWebMvc @EnableSwagger2 public class SwaggerConfig extends WebMvcConfigurerAdapter{ @Bean public Docket customDocket(){ return new Docket(DocumentationType.SWAGGER_2) .groupName("business-api") .genericModelSubstitutes(DeferredResult.class) .forCodeGeneration(false) .select()// 選擇哪些路徑和API會生成document .apis(RequestHandlerSelectors.basePackage("com.fh.controller.antd.appBackgroundManagement.AntdSysNewsController"))// 對所有api進行監控 .paths(PathSelectors.any())// 對所有路徑進行監控 .build(); } }
這是我讓SwaggerConfig.java掃描的controller(為了測試我把程式碼都註釋了,就留一個@Api註解在class上面):
package com.fh.controller.antd.appBackgroundManagement; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import jxl.Workbook; import jxl.format.Alignment; import jxl.format.UnderlineStyle; import jxl.format.VerticalAlignment; import jxl.write.Label; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import com.fh.entity.nrb.ResponseBean; import com.fh.entity.nrb.SysNews; import com.fh.entity.nrb.itemImg; import com.fh.mapper.nrb.SysNewsMapper; import com.fh.oss.TestOSS; import com.fh.service.nrb.NewsService; import com.fh.service.nrb.SysNewsService; import com.fh.util.JWT; import com.fh.util.PageData; import com.fh.util.nrb.KeyCreatorUtil; @Controller @RequestMapping("/appAntdSysNews") @Api(value="訊息通知",tags="訊息通知模組介面Api") public class AntdSysNewsController { }
這是靜態資源目錄:
這是新增的jar包 (不包括專案原先的):
全部是全部是看網上的文章,然後在maven中央倉庫上面下載的,那些文章都不提供jar包,官網的swagger UI也不知道有沒有下對,我用的版本有:一個swagger-ui-master版本的,還有一個swagger-ui-2.x,其他的要不是swagger1的,要不是3.0的我都不知道下哪個
com.fasterxml.classmate.classmate-1.3.3.jar
com.fasterxml.jackson.annotation.jackson-annotations-2.5.0.jar
com.fasterxml.jackson.core.jackson-core-2.5.0.jar
com.fasterxml.jackson.databind.jackson-databind-2.5.0.jar
org.codehaus.jackson.jackson-core-asl-1.9.13.jar
org.codehaus.jackson.jackson-mapper-asl-1.9.13.jar
org.springframework.plugin.core.spring-plugin-core-1.2.0.RELEASE.jar
org.springframework.plugin.metadata.spring-plugin-metadata-1.2.0.RELEASE.jar
springfox.documentation.springfox-core-2.7.0.jar
springfox.documentation.schema.springfox-schema-2.7.0.jar
springfox.documentation.springfox-spi-2.7.0.jar
springfox.documentation.spring.web.springfox-spring-web-2.7.0.jar
springfox.documentation.swagger.springfox-swagger-common-2.7.0.jar
springfox-swagger-ui-2.7.0.jar裡面是/META-INF/resources/webjars/springfox-swagger-ui/swagger-ui.html...
我把resorces解壓出來放到專案的META-INF裡面了
springfox.documentation.swagger2.springfox-swagger2-2.7.0.jar
io.swagger.annotations.swagger-annotations-1.5.13.jar
io.swagger.models.swagger-models-1.5.13.jar
com.mangofactory.swagger.swagger-springmvc-0.9.5.jar//這個似乎沒用,但我還是加上了
io.swagger.swagger-core-1.5.13.jar
這是ApplicationContext.xml配置的攔截器內容(<property name="filterChainDefinitions">裡面有好一大段都是看教程加的):
<!-- 啟動元件掃描,排除@Controller元件,該元件由SpringMVC配置檔案掃描 -->
<context:component-scan base-package="com.fh">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
<context:exclude-filter type="annotation"
expression="org.springframework.web.bind.annotation.ControllerAdvice" />
</context:component-scan><!-- ================ Shiro start ================ -->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="ShiroRealm" />
</bean>
<!-- 專案自定義的Realm -->
<bean id="ShiroRealm" class="com.fh.interceptor.shiro.ShiroRealm" ></bean>
<!-- Shiro Filter -->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager" />
<property name="loginUrl" value="/" />
<property name="successUrl" value="/main/index" />
<property name="unauthorizedUrl" value="/login_toLogin" />
<property name="filterChainDefinitions">
<value>
/static/login/** = anon
/static/js/myjs/** = authc
/static/js/** = anon
/uploadFiles/uploadImgs/** = anon
/code.do = anon
/login_login = anon
/app**/** = anon
/weixin/** = anon
/swagger/** = anon
/v2/api-docs = anon
/api-docs = anon
/api-docs/** = anon
/webjars/** = anon
/swagger-ui.html = anon
/api/** = anon
/assets/** = anon
/fonts/** = anon
/maps/** = anon
/api/_devops_/init = anon
/configuration/ui = anon
/configuration/security = anon
/scripts/** = anon
/styles/** = anon
/auth.html = anon
/** = authc
</value>
</property>
</bean>
<!-- ================ Shiro end ================ -->
這是ApplicationContext-mvc.xml:
<mvc:annotation-driven/>
<!-- 這是看網上一大堆教程是加的 start-->
<mvc:resources mapping="/webjars/*" location="classpath:/META-INF/resources/webjars/" />
<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/swagger-ui.html" />
<mvc:resources mapping="/swagger/**" location="/,/swagger/" />
<!-- 這是看網上一大堆教程是加的 end-->
<mvc:default-servlet-handler/><!-- 這是看網上一大堆教程是加的 start-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" /><!-- 這是看網上一大堆教程是加的 end-->
<!-- 對靜態資原始檔的訪問 restful-->
<mvc:resources mapping="/admin/**" location="/,/admin/" />
<mvc:resources mapping="/static/**" location="/,/static/" />
<mvc:resources mapping="/plugins/**" location="/,/plugins/" />
<mvc:resources mapping="/uploadFiles/**" location="/,/uploadFiles/" />
<context:component-scan base-package="com.fh.controller" />
<context:component-scan base-package="com.json" />
<bean class="com.fh.swagger.SwaggerConfig"/>
<!-- 訪問攔截 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**/**"/><!-- 這是看網上一大堆教程是加的start-->
<mvc:exclude-mapping path="/swagger*/**"></mvc:exclude-mapping>
<mvc:exclude-mapping path="/v2/**"></mvc:exclude-mapping>
<mvc:exclude-mapping path="/webjars/**"></mvc:exclude-mapping><!-- 這是看網上一大堆教程是加的 end-->
<bean class="com.fh.interceptor.LoginHandlerInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
<!-- 配置SpringMVC的檢視解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean id="exceptionResolver" class="com.fh.resolver.MyExceptionResolver"></bean>
<!-- 上傳攔截,如最大上傳值及最小上傳值 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" >
<property name="maxUploadSize">
<value>5368709120</value>
</property>
<property name="maxInMemorySize">
<value>4096</value>
</property>
<property name="defaultEncoding">
<value>utf-8</value>
</property>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html; charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
chrom控制檯:
日誌輸出內容:
2018-09-17 11:20:20 -687284 [http-8080-3] DEBUG - Looking up handler method for path /swagger/index.html
2018-09-17 11:20:20 -687285 [http-8080-3] DEBUG - looking up handler for path: /swagger/index.html
2018-09-17 11:20:20 -687285 [http-8080-3] DEBUG - Did not find handler method for [/swagger/index.html]
2018-09-17 11:20:21 -688233 [http-8080-3] DEBUG - Looking up handler method for path /v2/api-docs
2018-09-17 11:20:21 -688234 [http-8080-3] DEBUG - looking up handler for path: /v2/api-docs
2018-09-17 11:20:21 -688234 [http-8080-3] DEBUG - Returning handler method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
(經過除錯,是進入index.html先執行/v2/api-docs,然後執行swagger2controller的getDocumentation方法)
Returning handler method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
然後這裡不知道為什麼返回一個undefined
這個問題已經困擾我快一個禮拜了
下面是我看的一部分教程,更多的忘了收藏了,反正都差不多....
我一開始是看這篇文章的,但他不提供jar包,而且還少了個classmate-1.3.3.jar,不然啟動服務都報錯
我是看其他文章才完善自己的包的,如果需要我的jar包,在問題解決前可以留言郵箱,或者我後面文章加上去
急用的話可以去maven中央倉庫下載,jar包我前面寫了,注意看包名,因為這個浪費了我一下午時間
jar在我csdn的資源裡面上傳了,上傳最低要1積分。。。沒積分的可以留郵箱給我我不定時地過來看看
相關推薦
新人求助,非maven,非springboot專案使用swagger2
上個禮拜老大分配任務給我,公司專案需要生成介面文件,在網上找了許多文章,嘗試過各種辦法依舊無法讀取 先上圖: 這是SwaggerConfig.java的內容: package com.fh.swagger; import org.springframework.c
Maven外掛構建Springboot專案,生成Docker映象
一.Window平臺 .使用標準Spring Boot應用程式的Maven配置,建立springboot專案並測試。 新增Dockerfile:在src/main/resources下新增Dockerfile FROM java MAINTAINER "xiaoming
ant自動化構建非maven的java web專案
java web專案部署可能主要分兩個步驟:1.更新程式碼輸出專案包 2.拷貝專案包部署到伺服器 目前公司的專案部署第二個步驟通過指令碼都已實現,但是第一個步驟仍然是手動非常煩鎖,公司配置的電腦卡的要死,eclipse每次開啟更新程式碼編譯都要耗費很長時間,所以最後想想還是寫個指令碼來自動更新打
docker部署pinpoint,監控docker中的Springboot專案
pinpoint是一個開源的java監控專案,也是分散式監控專案中比較知名的。 網上有比較多的pinpoint部署指南,但都是基於主機部署的,這一篇主要是講將pinpoint部署到docker中,並監控同樣部署在docker的Springboot專案。 pi
五分鐘後,你將學會在SpringBoot專案中如何整合CAT呼叫鏈
買買買結算系統 一年一度的雙十一購物狂歡節就要到了,又到剁手黨們開始表演的時刻了。當我們把種草很久的商品放入購物車以後,點選“結算”按鈕時,就來到了買買買必不可少的結算頁面了。讓我們虛擬一個買買買結算系統,為結算頁面提供商品、促銷、庫存等結算資訊,就此係統展開如何在SpringBoot專案中整合CAT呼叫
eclipse oxygen版本使用maven方式建立SpringBoot專案
1,首先需要安裝maven,參考連結https://blog.csdn.net/tc11331144/article/details/79915354 2,eclipse配置maven,參考連結https://blog.csdn.net/tc11331144/article/details/79
jenkins+maven+svn實現springboot專案的自動化部署過程
前言 在安裝之前,我想說明一下本文的目的,jenkins的一款持續整合工具, 它可以做的事情很多,其中一個主要的功能就是簡化部署流程 &nbs
使用Maven外掛構建SpringBoot專案,生成Docker映象push到DockerHub上
一個用於構建和推送Docker映象的Maven外掛。 使用Maven外掛構建Docker映象,將Docker映象push到DockerHub上,或者私有倉庫,上一篇文章是手寫Dockerfile,這篇文章藉助開源外掛docker-maven-plugin 進行
SSM框架整合搭建流程記錄,非maven方式
簡答描述以及環境介紹 本人採用開發工具為Eclipse,JDK版本為1.8 tomcat為7.0,啟動未報錯。初學者建議根據2345678流程操作 匯入Jar包 利用逆向工程自動生成 實體類,Mapper介面,mapper檔案 編輯web.xml(配置s
【轉】PHP開發經驗之談,看了受益非淺
his 則表達式 處理 手冊 調用 緩存系統 字符串操作函數 如果能 諸多 用單引號代替雙引號來包含字符串,這樣做會更快一些。因為PHP會在雙引號包圍的字符串中搜尋變量,單引號則不會,註意:只有echo能這麽做,它是一種可以把多個字符串當作參數的“函數”(譯註:PHP手冊中
藍的成長記——追逐DBA(10):飛刀防身,熟絡而非專長:擺弄中間件Websphere
native 歷程 server 業界 http 由於 虛擬機 基礎 fill 原創作品,出自 “深藍的blog” 博客。歡迎轉載,轉載時請務必註明出處。否則追究版權法律責任。 深藍的blog:http://blog.csdn.net/huangyanlong/ar
二叉樹(11)----求二叉樹的鏡像,遞歸和非遞歸方式
temp right 二叉樹 -a data nbsp rac art urn 1、二叉樹定義: typedef struct BTreeNodeElement_t_ { void *data; } BTreeNodeElement_t; type
阻塞與非阻塞,同步與異步
通過 部件 一個 socket 沒有 事件觸發 sel syn 就會 在進行網絡編程時,我們常常見到同步(Sync)/異步(Async),阻塞(Block)/非阻塞(Unblock)四種調用方式:同步: 所謂同步,就是在發出一個功能調用時,在沒有得到結果之前,
十二、事件,委托,泛型委托,集合(泛型和非泛型),Lambda表達式(聲明委托,使用委托,簡單的委托示例,action<T>和func<t>委托,多播委托,匿名方法,Lambda表達式,參數,事件)
multicast new 調用方法 多播 ted 被調用 輸入參數 pac cas 事件(Event) 事件是一種對象或類能夠提供通知的成員,客戶端可以通過提供事件處理程序為相應的事件可添加可執行代碼,事件可以理解為一種特殊的委托。 委托(Delegate) 委托是存有對
SQL Server 非聚集索引的覆蓋,連接,交叉和過濾 <第二篇>
相對 col 超過 引用 保持 書簽 基本 nbsp 當我 在SQL Server中,非聚集索引其實可以看做是一個含有聚集索引的表,但相對實際的表來說,非聚集索引中所存儲的表的列數要少得多,一般就是索引列,聚集鍵(或RID)。非聚集索引僅僅包含源表中的非聚集索引的列和指
關於同步,異步,阻塞,非阻塞的簡單介紹
電視 書店 阻塞非阻塞 通信 之前 不能 函數 噪音 被調用 同步、異步、阻塞、非阻塞 同步:所謂同步就是當一個*調用另一個*時,在沒有得到結果之前,該*調用*就不返回東西,一旦有結果,就得到返回值了。異步:所謂異步同同步相反,當一個*調用一個*時發出時,調用直接得到返回,
Java鎖之重入鎖(Reentrantlock)原理,公平鎖與非公平鎖
一個 star spa void 模板 ont thread fin 模式 1、特點: 已獲取鎖的線程再次請求鎖,可以直接獲取。 2、實現: 自定義內部類 Sync,繼承 AbstarctQueuedSynchronizer : 2.1、獲取鎖:lock() a、公平鎖:
阻塞、非阻塞,同步、異步總結
非阻塞 阻塞 同步 異步 總結 阻塞、非阻塞 主要作用在調用方或請求方,如果調用方或請求方是一直等著不幹其它任何事情,就是阻塞方式,如果調用方或請求方在請求之後一邊等待一邊去做其它事情,這種方式則為非阻塞方式。 同步、異步 同步、異步是調用或請求機制,主要看被調用方或被請求方對結果的處理,
對阻塞,非阻塞,同步,異步的深入理解
一個 以太網 結果 情況下 spa nbsp emc sock 過程 以前寫過一篇對於這幾個概念的粗略解釋,現在再深入一些。 同步和異步的區別: 同步是調用協議中結果在調用完成時返回,調用過程中參與雙方處於一種狀態同步的過程。 異步是指調用方發出請求就立即返回。 請求甚至可