日常遇到的小问题
日常開發過程中,總會遇到各種小問題,特此記錄下各種解決。
1. eclipse中部署項目到tomcat,啟動tomcat時報錯:
Resource is out of sync with the file system: ................太長只截取前一段,解決辦法:需要手動刷新一下資源管理器,eclipse中,工程目錄右鍵,refresh。
2.maven項目打包的時候,mybatis的*mapper.xml都沒得打包,解決方法pom.xml中build節點中加入:
<resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources>?3.mybatis的數據庫連接配置信息寫在properties配置文件中,然后做spring做單元測試的時候,總是報出
Could not load driverClass ${jdbc.driverClass}錯誤的原因很明顯,相關的連接參數信息并沒有正確的去讀取properties配置文件中的相關信息,本地項目使用的mybaits版本號3.1.1。網上查找解決辦法,是由于
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.reserve.core.dao" /><property name="sqlSessionFactory" ref="sqlSessionFactory"></property> </bean>中的sqlSessionFactory注入問題,改用sqlSessionFactoryBeanName注入就沒有問題(不要使用sqlSessionFactory屬性注入,使用 sqlSessionFactoryBeanName注入),因為這時不會立即初始化sqlSessionFactory,傳入的只是名字,非bean, 所以不會引發提前初始化問題。
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>?4.獲取泛型T.class。最近最項目中,用到泛型設計,但是要獲取T.class,方法如下:
public abstract class DataSyncProService<T extends Data> implements DataSyncService{private Class<T> entityClass;//獲取泛型T的T.classpublic DataSyncProService(){Type genType = getClass().getGenericSuperclass();Type[] params = ((ParameterizedType) genType).getActualTypeArguments(); entityClass = (Class) params[0]; }.... }截取部分代碼,子類的構造函數會調用父類的構造函數,所以當子類實例化的時候,父類的entityClass 已經得到了T.class。
本地代碼其中一個子類定義:
public class MerinfoImpl extends DataSyncProService<MerInfo>另外,照搬一段資料,雖然現在還不是很懂:
這是泛型擦拭法使得Generic無法獲取自己的Generic Type類型。實際上BadClass<String>()實例化以后Class里面就不包括T的信息了,對于Class而言T已經被擦拭為Object,而真正的T參數被轉到使用T的方法(或者變量聲明或者其它使用T的地方)里面(如果沒有那就沒有存根),
所以無法反射到T的具體類別,也就無法得到T.class。而getGenericSuperclass()是Generic繼承的特例,對于這種情況子類會保存父類的Generic參數類型,
返回一個ParameterizedType,這時可以獲取到父類的T.class了,這也正是子類確定應該繼承什么T的方法
?5.jquery修改css中帶有!important的樣式屬性
html : <select class="select1" id="jq-sql-content"></select> 外部樣式為 .select1{color: #e3e3e3!important;} 如果直接使用:$("#jq-sql-content").css("color","black")或者$("#jq-sql-content").css("color","black!important"),都是無效的 正確用法$("#jq-sql-content").css("cssText","color:black!important"),多個屬性的話$("#jq-sql-content").css("cssText","color:black!important;屬性名:值!important;")?
6、linux安裝activemq
安裝完畢之后,啟動時候報錯如下
2018-06-05 11:26:06,750 | WARN | Exception thrown from LifecycleProcessor on context close | org.apache.activemq.xbean.XBeanBrokerFactory$1 | main java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: org.apache.activemq.xbean.XBeanBrokerFactory$1@6bbee61a: startup date [Tue Jun 05 11:26:03 CST 2018]; root of context hierarchyat org.springframework.context.support.AbstractApplicationContext.getLifecycleProcessor(AbstractApplicationContext.java:360)at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1057)at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1010)at org.apache.activemq.hooks.SpringContextHook.run(SpringContextHook.java:30)at org.apache.activemq.broker.BrokerService.stop(BrokerService.java:809)at org.apache.activemq.xbean.XBeanBrokerService.stop(XBeanBrokerService.java:122)at org.apache.activemq.broker.BrokerService.start(BrokerService.java:601)at org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:73)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1638)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1579)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:628)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)at org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:64)at org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:52)at org.apache.activemq.xbean.XBeanBrokerFactory$1.<init>(XBeanBrokerFactory.java:104)at org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java:104)at org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:67)at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71)at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54)at org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:87)at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)at org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:150)at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)at org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:104)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at org.apache.activemq.console.Main.runTaskClass(Main.java:262)at org.apache.activemq.console.Main.main(Main.java:115)
首先確定的是并不是權限問題,權限問題在./bin/activemq start啟動是就會報出permission denied。查詢資料,得知此根源為當前主機名,去除主機名中的下劃線即可。永久生效的話,需修改/etc/sysconfig/network和/etc/hostname文件。臨時生效直接命令hostname "你要定義的主機名",再下次重啟之前都有效。
?7、VMware centos6.9選擇鏈接克隆ip以及網絡鏈接問題
選擇鏈接克隆,與原始虛擬機共享同一虛擬磁盤文件,不能脫離原始虛擬機獨立運行。但采用共享磁盤文件卻大大縮短了創建克隆虛擬機的時間,同時還節省了寶貴的物理磁盤空間。通過鏈接克隆,可以輕松的為不同的任務創建一個獨立的虛擬機。?
首先,打開/etc/udev/rules.d/70-persistent-net.rules內容如下面例子所示:
記住eth1的網卡地址:000c:29:3d:83:b1
接下來,編輯? vi? ?/etc/sysconfig/network-scripts/ifcfg-eth0
將 DEVICE="eth0"? 改成? DEVICE="eth1"? ,
將 HWADDR="00:0c:29:46:62:f9" 改成上面的mac地址? HWADDR="00:0c:29:3d:83:b1"
重啟網絡:service network restart? ? 或者??/etc/init.d/network restart
?
轉載于:https://www.cnblogs.com/eric-fang/p/5665871.html
總結
- 上一篇: 梦到底是反的还是预兆
- 下一篇: eclipse使用技巧---使用正则表达