解決了。。 非常蠢的錯(cuò)誤,只需把java代碼改為如下:
private static void send(String host, int port, Map<String, Object> params) throws Exception {
if (SOCKET == null) {
SOCKET = new DatagramSocket();
}
InetAddress address = InetAddress.getByName(host);
String content = JSON.toJSONString(params);
byte[] bytes = content.getBytes("UTF-8");
DatagramPacket packet = new DatagramPacket(bytes, bytes.length, address, port);
SOCKET.send(packet);
}
所以問(wèn)題就在于包含中文的byte[]長(zhǎng)度和之前的字符串并不相同。。
這里的<可以不寫(xiě),它們執(zhí)行結(jié)果都一樣,過(guò)程不同.
cat /etc/passwd 是將/etc/passwd作為參數(shù)傳給cat
cat < /etc/passwd 由shell先將文件打開(kāi),然后把cat的標(biāo)準(zhǔn)輸入重定向到該文件描述符上.
從異常看是redis無(wú)法連接導(dǎo)致,超時(shí)java.net.SocketTimeoutException: connect timed out
手動(dòng)檢測(cè)部署應(yīng)用服務(wù)器能否連接redis.
telnet <host> 6379
如果沒(méi)telnet,可使用python
$ python
...
>>> import socket
>>> conn=socket.create_connection(('<host>',6379))
>>> //如果沒(méi)出現(xiàn)錯(cuò)誤說(shuō)明可以連接上JWT你可以理解為一個(gè)目標(biāo)(用戶)數(shù)據(jù)載體。
至于怎么驗(yàn)證需要自己結(jié)合業(yè)務(wù)邏輯實(shí)現(xiàn),當(dāng)然一些第三方的框架可能支持基于JWT的權(quán)限驗(yàn)證擴(kuò)展.
比如JSON Web Token with Apache Shiro介紹的,shiro支持jwt認(rèn)證并進(jìn)行角色(權(quán)限)校驗(yàn)。角色信息包含在payload中。
推送所有tag :git push --tags
附git常用命令
查看文件狀態(tài) :git status
切換分支 :git checkout [分支名]
新增文件 :git add [文件名]
新增所有文件 :git add -all
刪除文件 :git rm [文件名]
提交代碼到本地倉(cāng)庫(kù) :git commit -m "說(shuō)明"
將本地倉(cāng)庫(kù)代碼推送到遠(yuǎn)程 :git push
代碼回滾:(push前一定檢查好,不然回滾有很多坑)
查看日志 :git log
回滾到上一個(gè)版本 :git reset --hard HEAD^
到指定版本 :git reset --hard [commit hash]
創(chuàng)建分支
創(chuàng)建分支 :git checkout -b [分支名]
刪除分支 :git branch -d [分支名]
推送分支到遠(yuǎn)程 :git push origin [分支名]
關(guān)聯(lián)遠(yuǎn)程分支 :git push --set-upstream origin [分支名]
合并分支代碼
整個(gè)分支合并:git checkout [被合并的分支名]
根據(jù)[需求|commit hash]合并:
單個(gè)版本號(hào)合并:git cherry-pick [commit hash]
多個(gè)版本號(hào)合并:git rebase (好幾種用法,自行百度)
對(duì)發(fā)布分支打tag(tag名請(qǐng)跟發(fā)布分支名保持一致)
打tag :git tag -a [tag名] -m "此次tag備注"
推送所有tag :git push --tags
刪除tag :git tag -d [tag名]
這個(gè)你已經(jīng)說(shuō)了。但是以下缺點(diǎn)
配置文件遠(yuǎn)離使用它的模塊,要找的時(shí)候不太好找。
如果新增了一個(gè)模塊,開(kāi)發(fā)人員又忘記在外層conf里補(bǔ)充相關(guān)文件,項(xiàng)目就會(huì)啟動(dòng)不起來(lái)了。
配置還是在模塊的源代碼里,但是這里的配置文件只是一個(gè)模板,沒(méi)有具體值,項(xiàng)目啟動(dòng)的時(shí)候會(huì)讀取此路徑里的配置文件。
然后在aggregator項(xiàng)目(比如war包)的pom.xml里做一些配置,讓maven在打包時(shí)將各個(gè)jar包里的配置文件合并起來(lái),形成一個(gè)完整的配置文件。
你可以對(duì)這個(gè)完整的配置文件形成幾個(gè)版本:開(kāi)發(fā)、生產(chǎn)、測(cè)試,放到vcs里管理起來(lái)。
比如下面的代碼:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<configuration>
<artifactItems>
<artifactItem>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<type>jar</type>
<overWrite>true</overWrite>
<outputDirectory>target/assembly-tmp</outputDirectory>
<includes>application-xxx.properties</includes>
</artifactItem>
...
</artifactItems>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>unpack</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<configuration>
<target>
<concat destfile="${project.build.directory}/assembly-tmp/application.properties" force="yes">
<fileset dir="${project.build.directory}">
<include name="assembly-tmp/application-*.properties"></include>
</fileset>
</concat>
</target>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<descriptor>settings.xml</descriptor>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>yml 語(yǔ)法決定的。
你寫(xiě)0048 會(huì)被yml解析器解析成數(shù)字。
然后push到你的@Data里面,就變成了48.00
同意上面的說(shuō)法,
這種容易發(fā)生歧義的建議用引號(hào)包含
projectConfig:
code: '0048'1、將所有數(shù)據(jù)庫(kù)連接管理起來(lái),管理成一個(gè)個(gè)的數(shù)據(jù)源(MySQL1,MySQL2,Oracle1)之類的。然后在前端選擇某數(shù)據(jù)源傳遞到后臺(tái)。直接執(zhí)行SQL
2、根據(jù)前端傳過(guò)來(lái)的jdbc連接信息,直接連接。執(zhí)行SQL 其實(shí)說(shuō)白了,你們少了一個(gè)“數(shù)據(jù)源管理”模塊。
分兩種,如果直接是spring web的話,可以再web.xml中指定;如果是spring boot,需要使用java config來(lái)實(shí)現(xiàn),具體參考下面的博文:
http://cxytiandi.com/blog/det...
Java中的label標(biāo)記,類似于C語(yǔ)言的goto,可能是object:迷惑了你,你可以任意寫(xiě)一個(gè)字符串(非關(guān)鍵字)都能編譯通過(guò)。
Integer[][] arr = {
{1, 2, 3},
{2, 3, 4}
};
Arrays.sort(arr, new Comparator<Integer[]>( ) {
@Override
public int compare (Integer[] o1, Integer[] o2) {
// 返回0表示相同,正數(shù)表示 o1 大,負(fù)數(shù)表示 o2大
return 0;
}
});我猜是你的服務(wù)中心有服務(wù)沒(méi)有添加@Service注解
對(duì)特殊字符轉(zhuǎn)義。
\' \" \`.jenkins/job
流量分流,坑不坑看業(yè)務(wù)場(chǎng)景
我看到里面有幾行 Dosgi.requiredJavaVersion=1.8,看看是不是只能用 1.8
SQL長(zhǎng)度為1M,可能與服務(wù)器上行帶寬僅為1M有關(guān)系。
/^[\+\-\(\)\d]{9,15}$/北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。