国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

SSH+Tomcat運行加密部署的web項目(初版)

bergwhite / 3289人閱讀

摘要:一般來說會在項目中的中添加一個,里面配置這個配置文件在部署時,會被復制到中去,并被重新命名為項目名。由于使用的項目中配置了來加載第三方庫,配置了我自定義加載器后,這些包都無法加載了。我往開發機上打加密補丁的時候,總是無故消失,不知道為什么

為了這個功能提了很多問題都沒能得到解答,最后終于自己搞定了,現在把大體步驟總結下,供大家參考指正

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

下面的內容只寫了3.*spring版本的情況

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

tomcat中類加載器分為多層:

  Bootstrap
      |
   System
      |
   Common
   /     

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

-----然后配置元素
根據官方文檔,有多個地方配置。
一般來說會在項目中的META-INF中添加一個context.xml,里面配置:




這個配置文件在部署時,會被復制到{$Catalina_home}confCatalinalocalhost中去,并被重新命名為:項目名.xml。

由于使用的項目中配置了


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


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

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中配置了自動掃描


所以a.b包下的類都會被spring自動加載
而spring自動加載時使用的類是SimpleMetadataReader,所以要改寫他用于加載的類SimpleMetadataReader

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

寫在最后:
對于要部署在linux的同學,記得把分隔符換成 System.getProperty("file.separator")。
我往開發機上打加密補丁的時候,web.xml總是無故消失,不知道為什么

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70936.html

相關文章

  • 分布式任務調度平臺自動化部署

    摘要:分布式任務調度平臺,美團點評員工許雪里開發,其核心設計目標是開發迅速學習簡單輕量級易擴展。源碼地址二本文簡介主要是利用成熟的部署工具,結合開源的分布式任務調度框架作為工程,快速搭建自己的持續集成項目,其他項目可以類似構建。 一、概述 1、自動化部署能簡化開發過程的代碼管理,讓開發人員把更多的時間專注于業務實現, 簡化繁瑣的上線流程和操作步驟,做到項目的快速打包和部署,減少人...

    tomato 評論0 收藏0
  • 阿里云服務器部署Java Web項目全過程

    摘要:最近需要將一個項目部署到服務器上,方便多人共享訪問。購買服務器第一步當然是需要購買一臺服務器了,我選擇的是阿里云的,對于新用戶有一定的優惠活動。部署項目我需要將本地的工程打包成,以及將數據庫導出至文件一并上傳到服務器上。最近需要將一個Java Web項目部署到服務器上,方便多人共享訪問。這也是我第一次接觸服務器之類的東西,也花了一點時間,最終總算部署成功,寫下一篇文章記錄以便日后回顧。 購買...

    wua_wua2012 評論0 收藏0
  • Maven詳細教程

    摘要:清理上一次執行創建的文件處理資源文件編譯代碼執行單元測試文件創建拷貝到本地的倉庫下面發布生成文檔將工程所有文檔生成網站,生成的網站界面默認和的項目站點類似,但是其文檔用格式寫的,目前不支持,需要用其他插件配合才能支持。 前言 本文可以幫助你加深對Maven的整體認識,不是一篇基礎文章。如果你現在還沒有用 Maven 跑過 HelloWorld,那么本文可能不適合你。 一、Maven簡介...

    Keagan 評論0 收藏0

發表評論

0條評論

bergwhite

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<