亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

SSH+Tomcat運(yùn)行加密部署的web項(xiàng)目(初版)

bergwhite / 3361人閱讀

摘要:一般來(lái)說(shuō)會(huì)在項(xiàng)目中的中添加一個(gè),里面配置這個(gè)配置文件在部署時(shí),會(huì)被復(fù)制到中去,并被重新命名為項(xiàng)目名。由于使用的項(xiàng)目中配置了來(lái)加載第三方庫(kù),配置了我自定義加載器后,這些包都無(wú)法加載了。我往開(kāi)發(fā)機(jī)上打加密補(bǔ)丁的時(shí)候,總是無(wú)故消失,不知道為什么

為了這個(gè)功能提了很多問(wèn)題都沒(méi)能得到解答,最后終于自己搞定了,現(xiàn)在把大體步驟總結(jié)下,供大家參考指正

分三種情況:
(1)沒(méi)有配置spring自動(dòng)掃描
(2)2.5.*版本的spring
(3)3.*版本的spring

下面的內(nèi)容只寫(xiě)了3.*spring版本的情況

先將class文件加密
然后寫(xiě)個(gè)解密的類(lèi)加載器,繼承自webappclassloader(項(xiàng)目需要引入catalina.jar,這個(gè)包位于tomcat的lib目錄下),并配置到tomcat中去

tomcat中類(lèi)加載器分為多層:

  Bootstrap
      |
   System
      |
   Common
   /     

Webapp1 Webapp2 ...
添加自定義類(lèi)加載器的時(shí)候只需要繼承webappclassloader就好了。
然后將編譯好的class文件復(fù)制到{$Catalina_home}lib中去,這里要注意,如果包名為A.B,那么要在lib中新建這兩個(gè)目錄,也就是說(shuō)...libABMywebappclassloader.class
lib包有commonclassloader加載,一般只用于加載Tomcat發(fā)布的標(biāo)準(zhǔn)jar包,其他的第三方j(luò)ar包可以在catalina.properties中配置shared.loader,這里由于偷懶就直接放在lib下了,假裝自己寫(xiě)了個(gè)第三方庫(kù)。

-----然后配置元素
根據(jù)官方文檔,有多個(gè)地方配置。
一般來(lái)說(shuō)會(huì)在項(xiàng)目中的META-INF中添加一個(gè)context.xml,里面配置:




這個(gè)配置文件在部署時(shí),會(huì)被復(fù)制到{$Catalina_home}confCatalinalocalhost中去,并被重新命名為:項(xiàng)目名.xml。

由于使用的項(xiàng)目中配置了


來(lái)加載第三方庫(kù),配置了我自定義加載器后,"../aaaa/*.jar" 這些jar包都無(wú)法加載了。
目前我的解決辦法是注釋掉


然后在mywebappclassloader中使用addRepository()方法添加jar路徑(倉(cāng)庫(kù)),代碼如下:

File jarDir=new File("E:front_tcaaaa");
        if(jarDir.isDirectory()){
            File[] jarFiles=jarDir.listFiles(new JarFileNameFilter());
            for(File jarFile:jarFiles){
                try {
                    addRepository(jarFile.toURI().toURL().toString());
                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }

PS:

出自How Tomcat Works

最后在SSH框架下,由于在spring.xml中配置了自動(dòng)掃描


所以a.b包下的類(lèi)都會(huì)被spring自動(dòng)加載
而spring自動(dòng)加載時(shí)使用的類(lèi)是SimpleMetadataReader,所以要改寫(xiě)他用于加載的類(lèi)SimpleMetadataReader

這個(gè)類(lèi)是spring核心包org.springframework.core-3.0.2.RELEASE.jar中的,我們不需要解壓這個(gè)包然后替換SimpleMetadataReader.class這么麻煩,只需要在項(xiàng)目中建一個(gè)同名的類(lèi)即可,部署到tomcat后會(huì)覆蓋掉spring中的類(lèi)。
建立org.springframework.core.type.classreading包,然后建一個(gè)SimpleMetadataReader類(lèi)。隨便去哪下spring的源碼,然后復(fù)制過(guò)來(lái)改一下即可

寫(xiě)在最后:
對(duì)于要部署在linux的同學(xué),記得把分隔符換成 System.getProperty("file.separator")。
我往開(kāi)發(fā)機(jī)上打加密補(bǔ)丁的時(shí)候,web.xml總是無(wú)故消失,不知道為什么

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/70936.html

相關(guān)文章

  • 分布式任務(wù)調(diào)度平臺(tái)自動(dòng)化部署

    摘要:分布式任務(wù)調(diào)度平臺(tái),美團(tuán)點(diǎn)評(píng)員工許雪里開(kāi)發(fā),其核心設(shè)計(jì)目標(biāo)是開(kāi)發(fā)迅速學(xué)習(xí)簡(jiǎn)單輕量級(jí)易擴(kuò)展。源碼地址二本文簡(jiǎn)介主要是利用成熟的部署工具,結(jié)合開(kāi)源的分布式任務(wù)調(diào)度框架作為工程,快速搭建自己的持續(xù)集成項(xiàng)目,其他項(xiàng)目可以類(lèi)似構(gòu)建。 一、概述 1、自動(dòng)化部署能簡(jiǎn)化開(kāi)發(fā)過(guò)程的代碼管理,讓開(kāi)發(fā)人員把更多的時(shí)間專(zhuān)注于業(yè)務(wù)實(shí)現(xiàn), 簡(jiǎn)化繁瑣的上線(xiàn)流程和操作步驟,做到項(xiàng)目的快速打包和部署,減少人...

    tomato 評(píng)論0 收藏0
  • 阿里云服務(wù)器部署Java Web項(xiàng)目全過(guò)程

    摘要:最近需要將一個(gè)項(xiàng)目部署到服務(wù)器上,方便多人共享訪(fǎng)問(wèn)。購(gòu)買(mǎi)服務(wù)器第一步當(dāng)然是需要購(gòu)買(mǎi)一臺(tái)服務(wù)器了,我選擇的是阿里云的,對(duì)于新用戶(hù)有一定的優(yōu)惠活動(dòng)。部署項(xiàng)目我需要將本地的工程打包成,以及將數(shù)據(jù)庫(kù)導(dǎo)出至文件一并上傳到服務(wù)器上。最近需要將一個(gè)Java Web項(xiàng)目部署到服務(wù)器上,方便多人共享訪(fǎng)問(wèn)。這也是我第一次接觸服務(wù)器之類(lèi)的東西,也花了一點(diǎn)時(shí)間,最終總算部署成功,寫(xiě)下一篇文章記錄以便日后回顧。 購(gòu)買(mǎi)...

    wua_wua2012 評(píng)論0 收藏0
  • Maven詳細(xì)教程

    摘要:清理上一次執(zhí)行創(chuàng)建的文件處理資源文件編譯代碼執(zhí)行單元測(cè)試文件創(chuàng)建拷貝到本地的倉(cāng)庫(kù)下面發(fā)布生成文檔將工程所有文檔生成網(wǎng)站,生成的網(wǎng)站界面默認(rèn)和的項(xiàng)目站點(diǎn)類(lèi)似,但是其文檔用格式寫(xiě)的,目前不支持,需要用其他插件配合才能支持。 前言 本文可以幫助你加深對(duì)Maven的整體認(rèn)識(shí),不是一篇基礎(chǔ)文章。如果你現(xiàn)在還沒(méi)有用 Maven 跑過(guò) HelloWorld,那么本文可能不適合你。 一、Maven簡(jiǎn)介...

    Keagan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<