亚洲色成人网站www永久,亚洲欧美人成视频一区在线,亚洲国产成人高清在线观看,亚洲精品久久久久久动漫,亚洲国产精品久久电影欧美

數(shù)據(jù)專欄

智能大數(shù)據(jù)搬運(yùn)工,你想要的我們都有

科技資訊

科技學(xué)院

科技百科

科技書籍

網(wǎng)站大全

軟件大全

HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
例如集合中有若干文檔,文檔中有value_1、value_2、value_3......value_n,n個(gè)屬性key,我現(xiàn)在想只要value_1至value_n中任何一個(gè)屬性的值在a至b之間的,都要被查詢出來,每個(gè)文檔中value的數(shù)量不定,順序也不定,n的數(shù)量不定,所以不能窮舉,如何寫查詢條件?
技術(shù)問答
2017-09-20 14:06:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
日志如下:
詳情聯(lián)系微信:hero756317637
如解決有重謝
技術(shù)問答
2020-02-08 17:44:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
用普通賬戶登陸進(jìn)去后,然后進(jìn)行賬戶綁定。但是這樣會(huì)導(dǎo)致切換誰,登陸到gitlab的永遠(yuǎn)只有一個(gè)(就是前面進(jìn)行關(guān)聯(lián)的用戶),很納悶,請求大神幫忙?。?
附上gitlab.rb文件
!
技術(shù)問答
2020-02-11 18:20:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
系統(tǒng)是centos 6.2的 ,gitlab是8.9.5遷移到另外一臺(tái)服務(wù)器上的,其它頁面都可以正常顯示,但是一點(diǎn)擊項(xiàng)目就會(huì)顯示500(以前的gitlab是用yum安裝的,遷移到這臺(tái)是用rpm安裝的,版本都是8.9.5)報(bào)錯(cuò)如下
Started GET "/commons/dinpay-commons-springmvc" for 127.0.0.1 at 2016-10-11 01:32:51 +0800
Processing by ProjectsController#show as HTML
Parameters: {"namespace_id"=>"commons", "id"=>"dinpay-commons-springmvc"}
Completed 500 Internal Server Error in 137ms (ActiveRecord: 8.3ms)

OpenSSL::Cipher::CipherError (bad decrypt):
app/models/project.rb:456:in `import_url'
app/models/project.rb:486:in `external_import?'
app/models/project.rb:478:in `import?'
app/models/project.rb:494:in `import_in_progress?'
app/controllers/projects_controller.rb:93:in `show'
lib/gitlab/middleware/go.rb:16:in `call'
技術(shù)問答
2016-10-11 16:01:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
gitlab代碼統(tǒng)計(jì)(java版本)如何實(shí)現(xiàn)?
包含去除merge帶來的誤導(dǎo)
技術(shù)問答
2019-11-21 20:16:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
通過git的ssh協(xié)議可用正確的訪問服務(wù),openssh-server也可以再同一臺(tái)機(jī)器上提供服務(wù),為什么?他們是怎么做到的?
技術(shù)問答
2019-06-20 21:21:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
如下圖所示,代碼中都是GBK格式,并且在idea中,也沒有亂碼。
請問有人知道這是什么原因嗎?有什么方法解決嗎?還是說是gitlab的bug?
技術(shù)問答
2019-05-09 20:34:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>> 有用DRBD做gitlab高可用方案的么?
技術(shù)問答
2016-08-23 17:40:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
在 IDEA 中刪除某個(gè) java 文件后,如何用 git 將 gitlab 上的對應(yīng)的文件也刪掉。比如用 svn 的話,刪掉一個(gè)文件后,只要提交被刪除文件所在目錄,可以同步刪掉 svn 上的對應(yīng)文件。那么如何做可以 IDEA 中如何做,才可以刪掉 gitlab 中的對應(yīng)文件呢?
技術(shù)問答
2018-10-31 11:27:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
git log --branches=master --format='%ce' | sort -u | while read name; do echo -en "$name "; git log --since ==2018-08-20 --until ==2018-10-08 --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2 } END { printf "添加: %s, 刪除: %s\n", add,subs }' -; done

1.為什么用以前的一個(gè)分支查詢當(dāng)前提交的代碼變更數(shù)可以查到
2.為什么會(huì)出現(xiàn)一個(gè)人在三個(gè)星期的工作量達(dá)到百萬行
3.有沒有辦法同時(shí)查詢兩個(gè)分支,并進(jìn)行對比
技術(shù)問答
2018-12-14 16:52:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
gitlab 獲取分支API 只能查到前20個(gè)分支, 客戶有個(gè)項(xiàng)目有113個(gè)分支 ,我代碼通過gitlab API 只能查詢20條
各位前輩有什么可以獲取全部分支列表的方法?而不是只獲取到前20條
感謝!
文檔如圖:

實(shí)際返回的數(shù)據(jù):
只有20條分支信息
技術(shù)問答
2018-12-05 11:02:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
就是把git的分支在Jenkins上建立一個(gè)項(xiàng)目集合所有分支,只要gitlab收到那個(gè)分支上的代碼就會(huì)觸發(fā)Jenkins上的哪個(gè)分支構(gòu)建,多個(gè)分支部署到不通目錄
技術(shù)問答
2018-09-10 11:50:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
如何定制自己的gitlab主頁,在管理員帳號下只能設(shè)置一些簡單的,如果我想改變布局和配色相關(guān)的內(nèi)容應(yīng)該在哪里修改,完全無從下手!!
我的主頁: http://toolchains.cn
技術(shù)問答
2017-06-17 15:25:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>> 想定制下gitlab的首頁,就是那個(gè)登陸頁面,有做過的嗎,求給點(diǎn)思路,謝謝!
技術(shù)問答
2015-09-24 10:34:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
目的主要是公司內(nèi)部代碼強(qiáng)制進(jìn)行code review:單獨(dú)建一個(gè)gitlab賬號,建立項(xiàng)目并且建立項(xiàng)目內(nèi)的測試分支、預(yù)發(fā)布分支、正式分支,這個(gè)賬號用來部署代碼,任何人都不允許也沒有權(quán)限直接git push代碼到某個(gè)分支下,只能pull request。
怎樣才能實(shí)現(xiàn)這樣的邏輯操作?或有沒有已經(jīng)這樣做的?煩請各位大拿給一個(gè)方法,簡單的說明也可以。
技術(shù)問答
2018-07-07 23:22:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
根據(jù)官方https://docs.gitlab.com/omnibus/docker/ 安裝文檔,使用命令 sudo docker run --detach \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab:Z \ --volume /srv/gitlab/logs:/var/log/gitlab:Z \ --volume /srv/gitlab/data:/var/opt/gitlab:Z \ gitlab/gitlab-ce:latest Error response from daemon: driver failed programming external connectivity on endpoint gitlab (2ffc17fdd0d53ca9e55493fe0a2daef1ef7db29b80f5125070087ba2e7f5fcec): Error starting userland proxy: listen tcp 0.0.0.0:22: bind: address already in use
來啟動(dòng)容器,總是會(huì)報(bào)端口22沖突,也能理解,22端口是被用來作主機(jī)的ssh端口
但是官方文檔為什么這么寫呢
另外,我將主機(jī)ssh端口更改為10022為,gitlab能起來,但是ssh地址還是不能用,bad file number: 10022(已排除防火墻)
網(wǎng)上搜了很多資料都沒有找到原因
技術(shù)問答
2018-05-30 21:36:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
@JFinal 你好,想跟你請教個(gè)問題:

jfinal_weixin開發(fā)怎么在啟動(dòng)之后,訪問http://localhost/msg報(bào)500錯(cuò)誤,本人是新手,希望能得到你的幫助!

------------------------------------------------------------------------------------------------

接收消息:


[Fatal Error] :1:1: 文件提前結(jié)束。
四月 20, 2016 3:21:56 下午 com.jfinal.core.ActionHandler error
SEVERE: /msg
java.lang.RuntimeException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 文件提前結(jié)束。
at com.jfinal.weixin.sdk.kit.XmlKit.parse(XmlKit.java:45)
at com.jfinal.weixin.sdk.msg.InMsgParser.parse(InMsgParser.java:38)
at com.jfinal.weixin.sdk.jfinal.MsgController.getInMsg(MsgController.java:141)
at com.jfinal.weixin.sdk.jfinal.MsgController.index(MsgController.java:54)
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:601)
at com.jfinal.aop.Invocation.invoke(Invocation.java:73)
at com.jfinal.weixin.sdk.jfinal.MsgInterceptor.intercept(MsgInterceptor.java:46)
at com.jfinal.aop.Invocation.invoke(Invocation.java:67)
at com.jfinal.core.ActionHandler.handle(ActionHandler.java:74)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:365)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 文件提前結(jié)束。
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:251)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:300)
at com.jfinal.weixin.sdk.kit.XmlKit.parse(XmlKit.java:39)
... 35 more
技術(shù)問答
2016-04-20 16:35:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
今天想學(xué)習(xí)一下jfinal-weixin框架,下載后啟動(dòng)發(fā)現(xiàn)報(bào)錯(cuò),本人的開發(fā)工具是IDEA 2018,具體錯(cuò)誤為:
錯(cuò)誤: 找不到或無法加載主類 com.jfinal.weixin.demo.WeixinConfig
如下圖。

嘗試了創(chuàng)建一個(gè)新類User再運(yùn)行,卻又是正常的。

此時(shí)如果讓User類繼承JfinalConfig再運(yùn)行,又會(huì)報(bào)錯(cuò)。
不知道為什么會(huì)這樣。請問有誰遇到這個(gè)問題嗎?
技術(shù)問答
2019-02-26 17:34:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
1.configPlugin DruidPlugin druidPlugin = new DruidPlugin(getProperty("jdbcUrl"), getProperty("user"), getProperty("password")); druidPlugin.setFilters("stat,log4j"); me.add(druidPlugin); me.add(new EhCachePlugin()); // 配置ActiveRecord插件 AutoTableBindPlugin arp = new AutoTableBindPlugin(druidPlugin,TableNameStyle.LOWER);//table是實(shí)體的小寫 me.add(arp); arp.setShowSql(true);
2.實(shí)體類 @TableBind(tableName="table") public class table extends Model{ private static final long serialVersionUID = 1L; public static String tableName = "table"; public static final AdminUser table = new table(); public AdminUser getByName(String username){ return dao.findFirst("select * from table where username=" + username); }
3.報(bào)錯(cuò): java.lang.NullPointerException at com.jfinal.plugin.activerecord.Model.find(Model.java:529) at com.jfinal.plugin.activerecord.Model.findFrist(Model.java:546)
技術(shù)問答
2019-01-10 15:02:01
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
添加了出不來啊,在哪里調(diào)用那個(gè)接口
/** * 查詢菜單 */ MenuApi . getMenu (); /** * 創(chuàng)建菜單 */ MenuApi . createMenu ( String jsonStr ); 看網(wǎng)上寫的下面這樣不好用啊
me.add("/msg", WeixinMsgController.class,"/msg");
me.add("/api", WeixinApiController.class, "/api");
me.add("/menu",MenuController.class);
技術(shù)問答
2016-01-16 18:20:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
@JFinal 你好,想跟你請教個(gè)問題:JFinal Weixin怎么創(chuàng)建自定義菜單啊,沒看懂
技術(shù)問答
2015-01-30 19:18:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
在處理菜單點(diǎn)擊事件的方法里 WeixinMsgController.processInMenuEvent ,調(diào)用CustomServiceApi.sendMpNews,發(fā)送圖文消息報(bào)下面的錯(cuò)誤,信息能正常接收到,什么原因
SEVERE: /jwx/msg?signature=d8e707c605aa05633ae508908527749f2e65e180×tamp=1537689035&nonce=1093934862&openid=o6fbwt0kWHoj4qYaq8I8YsP5ACI8
java.lang.RuntimeException: File not found : /var/www/ryj/tomcat7/webapps/ROOT/jwx/msg/index.html
at com.jfinal.template.source.FileSource.getContent(FileSource.java:70)
at com.jfinal.template.Engine.buildTemplateBySourceFactory(Engine.java:154)
at com.jfinal.template.Engine.getTemplate(Engine.java:139)
at com.jfinal.render.TemplateRender.render(TemplateRender.java:61)
at com.jfinal.core.ActionHandler.handle(ActionHandler.java:103)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:73)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Sep 23, 2018 3:50:35 PM com.jfinal.core.JFinalFilter error
SEVERE: /jwx/msg?signature=d8e707c605aa05633ae508908527749f2e65e180×tamp=1537689035&nonce=1093934862&openid=o6fbwt0kWHoj4qYaq8I8YsP5ACI8
java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:636)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:213)
at com.jfinal.render.ErrorRender.render(ErrorRender.java:59)
at com.jfinal.core.ActionHandler.handle(ActionHandler.java:141)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:73)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
技術(shù)問答
2018-09-23 20:06:02
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>> demo代碼中沒有給出如何接入微信
技術(shù)問答
2015-01-14 17:20:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>> 在微信公眾號開發(fā)中,當(dāng)完成某個(gè)任務(wù)后如何在聊天界面推送一條消息,讓用戶知曉?并在消息中嵌入某個(gè)h5頁面的鏈接。新手求指點(diǎn)。。。。
技術(shù)問答
2015-07-07 16:39:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>> JFinal 微信所處理的消息類型是不是還不包括以下幾種:scancode_push:掃碼推事件
scancode_waitmsg:掃碼推事件且彈出“消息接收中”提示框pic_sysphoto:彈出系統(tǒng)拍照發(fā)圖pic_photo_or_album:彈出拍照或者相冊發(fā)圖pic_weixin:彈出微信相冊發(fā)圖器location_select:彈出地理位置選擇器如果需要擴(kuò)展以上幾種事件類型的話需要在InMsgParaser 類中進(jìn)行擴(kuò)展?
技術(shù)問答
2014-12-18 00:36:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
@JFINAL 波總您好,想請教你一個(gè)問題,我參考jfinal-weixin里面的WeixinMsgController的MsgController的MsgInterceptor寫了個(gè)攔截器,主要是用來判斷是否能獲取到參數(shù)code的,如果沒有這個(gè)參數(shù),我就調(diào)用微信那邊的授權(quán)接口,現(xiàn)在code是能獲取得到,但是用兩個(gè)微信號訪問時(shí),獲取OPENID時(shí)都獲取了第一個(gè)微信號訪問的OPENID,就是只能獲取第一個(gè)微信號的OPENID,請問這個(gè)是什么情況呢?
下面是攔截器代碼
public class BindInterceptor implements Interceptor {

public void intercept(Invocation inv) {
Controller controller = inv.getController();
if (controller instanceof BindController == false)
throw new RuntimeException("控制器需要繼承 BindController");

try {
// 將 ApiConfig 對象與當(dāng)前線程綁定,以便在后續(xù)操作中方便獲取該對象: ApiConfigKit.getApiConfig();
ApiConfigKit.setThreadLocalApiConfig(((BindController) controller).getApiConfig());
// 判斷請求的controller是否帶有微信返回的code參數(shù),如果沒有就調(diào)用微信授權(quán)接口獲取code參數(shù)
if (controller.isParaBlank("code")) {
final String scope = "snsapi_base";
//當(dāng)前正在訪問的路徑地址
final StringBuffer requestPath = controller.getRequest().getRequestURL();
//組裝成微信接口調(diào)用地址
String resultUrl = SnsAccessCodeApi.getCoode(requestPath.toString(), scope);
try {
//請求微信接口地址
controller.getResponse().sendRedirect(resultUrl);
} catch (IOException e) {
e.printStackTrace();
}
}
inv.invoke();
} finally {
ApiConfigKit.removeThreadLocalApiConfig();
}
}
}
技術(shù)問答
2015-09-28 10:23:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
@JFinal 你好,想跟你請教個(gè)問題:
使用退款refund API時(shí), 報(bào)這個(gè)錯(cuò)誤,證書是從微信上下載的。

Caused by: java.io.IOException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded
at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1317)
at java.security.KeyStore.load(KeyStore.java:1226)
at com.jfinal.weixin.sdk.utils.HttpUtils$OkHttp3Delegate.postSSL(HttpUtils.java:345)
... 19 more
Caused by: javax.crypto.BadPaddingException: Given final block not properly padded
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:811)
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:676)
at com.sun.crypto.provider.PKCS12PBECipherCore.implDoFinal(PKCS12PBECipherCore.java:355)
at com.sun.crypto.provider.PKCS12PBECipherCore$PBEWithSHA1AndRC2_40.engineDoFinal(PKCS12PBECipherCore.java:462)
at javax.crypto.Cipher.doFinal(Cipher.java:1966)
at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1308)
... 21 more
技術(shù)問答
2016-08-18 11:19:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
JFinal weixin是否還沒支持企業(yè)號?近期有支持企業(yè)號的開發(fā)計(jì)劃嗎?
謝謝!
技術(shù)問答
2016-02-02 21:26:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
需求:因?yàn)榭头畔⒔涌谛枰J(rèn)證后才有權(quán)限調(diào)用,而認(rèn)證又需要300大洋。我只需要普通公眾號加客服信息接口,因?yàn)橛袝r(shí)候用戶發(fā)了命令后,后臺(tái)處理業(yè)務(wù)的時(shí)候5秒內(nèi)處理不完,可能會(huì)30秒才有結(jié)果。
場景:免費(fèi)的普通個(gè)人訂閱號可以直接登錄網(wǎng)頁版后,和48小時(shí)內(nèi)有互動(dòng)的人主動(dòng)發(fā)送信息,并且每天可以群發(fā)一條信息。然后微信并沒有開放API,所以我今天做了程序模擬微信的http網(wǎng)頁登錄。
問題:程序模擬最后一步的時(shí)候 https://mp.weixin.qq.com/cgi-bin/bizlogin?action=login&token=&lang=zh_CN post后一直返回 {"base_resp":{"err_msg":"default","ret":-14}} 檢查了N編cookie和header 都沒有找到問題。
有沒有同樣需求的朋友一起研究一下?
技術(shù)問答
2017-02-28 23:40:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
@JFinal 你好,想跟你請教個(gè)問題:jfinal_weixin 配置測試用號總是顯示配置失敗,后臺(tái)打印結(jié)果 ,求告知
技術(shù)問答
2015-03-03 20:57:09
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
最近需要在 Sublime Text 3 下使用 Less( 什么是Less ),但是發(fā)現(xiàn)無法即時(shí)編譯,很不方便。 于是到 github 上搜索,發(fā)現(xiàn)了一款 Sublime Text2 的即時(shí)編譯插件 ,但是該插件的py腳本是基于 python2.x寫的,無法在 Sublime Text 3 的 Python3 環(huán)境下運(yùn)行,同時(shí)發(fā)現(xiàn)使用的less.js文件是1.3.3版本的。
為了能在我的SublimeText3下運(yùn)行,即時(shí)半學(xué)了Python的語法,然后修改了該插件,并將less.js升級到less-1.7.5 版本(中間很多苦難啊,特別是第一次接觸Python的格式化語言,遇到了好多的tab縮進(jìn)和空格不一致的問題 )。
現(xiàn)在將該插件分享給大家: http://git.oschina.net/yswang/lessc
亮點(diǎn)噢: 該插件是完全獨(dú)立的,只要放到 SublimeText3\Data\Packages下即可使用,不需要安裝什么額外的Nodejs環(huán)境啦、lessjs-window 環(huán)境啦等(本人最討厭這樣的依賴)
技術(shù)問答
2015-02-03 16:22:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
之前用的ST2 最近才下了個(gè)ST3.
再使用過程中發(fā)現(xiàn)了我所說問題。
比如,我再HTML文檔中輸入個(gè), "enter"
后(我沒有開代碼補(bǔ)全),然后按Ctrl+Shift+Enter后是會(huì)自動(dòng)跳到上一行,并且也會(huì)自動(dòng)向右縮進(jìn)一個(gè)Tab,但是只要在接著輸入的話就又自動(dòng)往左后退一個(gè)Tab了?這是什么問題呢?
不知道我描述的大家能不能明白。。。
技術(shù)問答
2014-04-05 14:57:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
我的sublime安裝了emmet,還是沒有代碼提示。比如html:5,h1+h2,css和js也是沒有代碼提示。ps:我的sublime3可以打開emmet這個(gè)文件,請問是我應(yīng)該設(shè)置什么嗎?在線等,挺急的
技術(shù)問答
2016-05-13 15:00:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
@vczero 你好,想跟你請教個(gè)問題:
最近在看你的書《React Native入門與實(shí)戰(zhàn)》,碰到這樣一個(gè)問題,一直搞不明白,總是報(bào)路徑錯(cuò)誤,但是我反復(fù)檢查了路徑?jīng)]有錯(cuò),我想請教一下這里邊是不是還有什么蹊蹺?
技術(shù)問答
2016-04-01 11:54:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
最近對sublime 愛不釋手了.我用的最新版本的.
而且我喜歡傾向于白色主題.個(gè)人喜歡吧.感覺黑色的累眼.
那么問題來了,我看這個(gè)地方尤為不順眼,誰知道在哪里改呢?我在論壇上看了兩個(gè)小時(shí),也沒有找到解決方案.是不是夠笨的了..
每次敲尖括號的時(shí)候,這個(gè)重重的顏色慌瞎我的雙眼啊.我是不是有強(qiáng)迫癥啊,我想改變這個(gè)這個(gè)顏色!!
誰知道,忙嗎解答一下.十分感謝!
技術(shù)問答
2016-03-26 19:23:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
基于NodeJS的前后端分離 ( 此文章來自淘寶 )
前言
為了解決傳統(tǒng)Web開發(fā)模式帶來的各種問題,我們進(jìn)行了許多嘗試,但由于前/后端的物理鴻溝,嘗試的方案都大同小異。痛定思痛,今天我們重新思考了“前后端”的定義,引入前端同學(xué)都熟悉的NodeJS,試圖探索一條全新的前后端分離模式。
隨著不同終端(Pad/Mobile/PC)的興起,對開發(fā)人員的要求越來越高,純?yōu)g覽器端的響應(yīng)式已經(jīng)不能滿足用戶體驗(yàn)的高要求,我們往往需要針對不同的終端開發(fā)定制的版本。為了提升開發(fā)效率,前后端分離的需求越來越被重視,后端負(fù)責(zé)業(yè)務(wù)/數(shù)據(jù)接口,前端負(fù)責(zé)展現(xiàn)/交互邏輯,同一份數(shù)據(jù)接口,我們可以定制開發(fā)多個(gè)版本。
這個(gè)話題最近被討論得比較多,阿里有些BU也在進(jìn)行一些嘗試。討論了很久之后,我們團(tuán)隊(duì)決定探索一套基于NodeJS的前后端分離方案,過程中有一些不斷變化的認(rèn)識以及思考,記錄在這里,也希望看到的同學(xué)參與討論,幫我們完善。
一、什么是前后端分離?
最開始組內(nèi)討論的過程中我發(fā)現(xiàn),每個(gè)人對前后端分離的理解不一樣,為了保證能在同一個(gè)頻道討論,先就什么是”前后端分離”達(dá)成一致。
大家一致認(rèn)同的前后端分離的例子就是SPA(Single-page application),所有用到的展現(xiàn)數(shù)據(jù)都是后端通過異步接口(AJAX/JSONP)的方式提供的,前端只管展現(xiàn)。
從某種意義上來說,SPA確實(shí)做到了前后端分離,但這種方式存在兩個(gè)問題: WEB服務(wù)中,SPA類占的比例很少。很多場景下還有同步/同步+異步混合的模式,SPA不能作為一種通用的解決方案。 現(xiàn)階段的SPA開發(fā)模式,接口通常是按照展現(xiàn)邏輯來提供的,有時(shí)候?yàn)榱颂岣咝?后端會(huì)幫我們處理一些展現(xiàn)邏輯,這就意味著后端還是涉足了View層的工作,不是真正的前后端分離。
SPA式的前后端分離,是從物理層做區(qū)分(認(rèn)為只要是客戶端的就是前端,服務(wù)器端的就是后端),這種分法已經(jīng)無法滿足我們前后端分離的需求,我們認(rèn)為從職責(zé)上劃分才能滿足目前我們的使用場景: 前端:負(fù)責(zé)View和Controller層。 后端:只負(fù)責(zé)Model層,業(yè)務(wù)處理/數(shù)據(jù)等。
為什么去做這種職責(zé)的劃分,后面會(huì)繼續(xù)探討。
二、為什么要前后端分離?
關(guān)于這個(gè)問題,玉伯的文章 Web研發(fā)模式演變 中解釋得非常全面,我們再大概理一下:
2.1 現(xiàn)有開發(fā)模式的適用場景
玉伯提到的幾種開發(fā)模式,各有各的適用場景,沒有哪一種完全取代另外一種。 比如后端為主的MVC,做一些同步展現(xiàn)的業(yè)務(wù)效率很高,但是遇到同步異步結(jié)合的頁面,與后端開發(fā)溝通起來就會(huì)比較麻煩。 Ajax為主SPA型開發(fā)模式,比較適合開發(fā)APP類型的場景,但是只適合做APP,因?yàn)镾EO等問題不好解決,對于很多類型的系統(tǒng),這種開發(fā)方式也過重。
2.2 前后端職責(zé)不清
在業(yè)務(wù)邏輯復(fù)雜的系統(tǒng)里,我們最怕維護(hù)前后端混雜在一起的代碼,因?yàn)闆]有約束,M-V-C每一層都可能出現(xiàn)別的層的代碼,日積月累,完全沒有維護(hù)性可言。
雖然前后端分離沒辦法完全解決這種問題,但是可以大大緩解。因?yàn)閺奈锢韺哟紊媳WC了你不可能這么做。
2.3 開發(fā)效率問題
淘寶的Web基本上都是基于MVC框架webx,架構(gòu)決定了前端只能依賴后端。
所以我們的開發(fā)模式依然是,前端寫好靜態(tài)demo,后端翻譯成VM模版,這種模式的問題就不說了,被吐槽了很久。
直接基于后端環(huán)境開發(fā)也很痛苦,配置安裝使用都很麻煩。為了解決這個(gè)問題,我們發(fā)明了各種工具,比如 VMarket ,但是前端還是要寫VM,而且依賴后端數(shù)據(jù),效率依然不高。
另外,后端也沒法擺脫對展現(xiàn)的強(qiáng)關(guān)注,從而專心于業(yè)務(wù)邏輯層的開發(fā)。
2.4 對前端發(fā)揮的局限
性能優(yōu)化如果只在前端做空間非常有限,于是我們經(jīng)常需要后端合作才能碰撞出火花,但由于后端框架限制,我們很難使用Comet、Bigpipe等技術(shù)方案來優(yōu)化性能。
為了解決以上提到的一些問題,我們進(jìn)行了很多嘗試,開發(fā)了各種工具,但始終沒有太多起色,主要是因?yàn)槲覀冎荒茉诤蠖私o我們劃分的那一小塊空間去發(fā)揮。只有真正做到前后端分離,我們才能徹底解決以上問題。
三、怎么做前后端分離?
怎么做前后端分離,其實(shí)第一節(jié)中已經(jīng)有了答案: 前端:負(fù)責(zé)View和Controller層。 后端:負(fù)責(zé)Model層,業(yè)務(wù)處理/數(shù)據(jù)等。
試想一下,如果前端掌握了Controller,我們可以做url design,我們可以根據(jù)場景決定在服務(wù)端同步渲染,還是根據(jù)view層數(shù)據(jù)輸出json數(shù)據(jù),我們還可以根據(jù)表現(xiàn)層需求很容易的做Bigpipe,Comet,Socket等等,完全是需求決定使用方式。
3.1 基于NodeJS“全棧”式開發(fā)
如果想實(shí)現(xiàn)上圖的分層,就必然需要一種web服務(wù)幫我們實(shí)現(xiàn)以前后端做的事情,于是就有了標(biāo)題提到的“基于NodeJS的全棧式開發(fā)”
這張圖看起來簡單而且很好理解,但沒嘗試過,會(huì)有很多疑問。 SPA模式中,后端已供了所需的數(shù)據(jù)接口,view前端已經(jīng)可以控制,為什么要多加NodeJS這一層? 多加一層,性能怎么樣? 多加一層,前端的工作量是不是增加了? 多加一層就多一層風(fēng)險(xiǎn),怎么破? NodeJS什么都能做,為什么還要JAVA?
這些問題要說清楚不容易,下面說下我的認(rèn)識過程。
3.2 為什么要增加一層NodeJS?
現(xiàn)階段我們主要以后端MVC的模式進(jìn)行開發(fā),這種模式嚴(yán)重阻礙了前端開發(fā)效率,也讓后端不能專注于業(yè)務(wù)開發(fā)。
解決方案是讓前端能控制Controller層,但是如果在現(xiàn)有技術(shù)體系下很難做到,因?yàn)椴豢赡茏屗星岸硕紝W(xué)java,安裝后端的開發(fā)環(huán)境,寫VM。
NodeJS就能很好的解決這個(gè)問題,我們無需學(xué)習(xí)一門新的語言,就能做到以前開發(fā)幫我們做的事情,一切都顯得那么自然。
3.3 性能問題
分層就涉及每層之間的通訊,肯定會(huì)有一定的性能損耗。但是合理的分層能讓職責(zé)清晰、也方便協(xié)作,會(huì)大大提高開發(fā)效率。分層帶來的損失,一定能在其他方面的收益彌補(bǔ)回來。
另外,一旦決定分層,我們可以通過優(yōu)化通訊方式、通訊協(xié)議,盡可能把損耗降到最低。
舉個(gè)例子:
淘寶寶貝詳情頁靜態(tài)化之后,還是有不少需要實(shí)時(shí)獲取的信息,比如物流、促銷等等,因?yàn)檫@些信息在不同業(yè)務(wù)系統(tǒng)中,所以需要前端發(fā)送5,6個(gè)異步請求來回填這些內(nèi)容。
有了NodeJS之后,前端可以在NodeJS中去代理這5個(gè)異步請求,還能很容易的做Bigpipe,這塊的優(yōu)化能讓整個(gè)渲染效率提升很多。
可能在PC上你覺得發(fā)5,6個(gè)異步請求也沒什么,但是在無線端,在客戶手機(jī)上建立一個(gè)HTTP請求開銷很大,有了這個(gè)優(yōu)化,性能一下提升好幾倍。
淘寶詳情基于NodeJS的優(yōu)化我們正在進(jìn)行中,上線之后我會(huì)分享一下優(yōu)化的過程。
3.4 前端的工作量是否增加了?
相對于只切頁面/做demo,肯定是增加了一點(diǎn),但是當(dāng)前模式下有聯(lián)調(diào)、溝通環(huán)節(jié),這個(gè)過程非常花時(shí)間,也容易出bug,還很難維護(hù)。
所以,雖然工作量會(huì)增加一點(diǎn),但是總體開發(fā)效率會(huì)提升很多。
另外,測試成本可以節(jié)省很多。以前開發(fā)的接口都是針對表現(xiàn)層的,很難寫測試用例。如果做了前后端分離,甚至測試都可以分開,一撥人專門測試接口,一撥人專注測試UI(這部分工作甚至可以用工具代替)。
3.5 增加Node層帶來的風(fēng)險(xiǎn)怎么控制?
隨著Node大規(guī)模使用,系統(tǒng)/運(yùn)維/安全部門的同學(xué)也一定會(huì)加入到基礎(chǔ)建設(shè)中,他們會(huì)幫助我們?nèi)ネ晟聘鱾€(gè)環(huán)節(jié)可能出現(xiàn)的問題,保障系的穩(wěn)定性。
3.6 Node什么都能做,為什么還要JAVA?
我們的初衷是做前后端分離,如果考慮這個(gè)問題就有點(diǎn)違背我們的初衷了。即使用Node替代Java,我們也沒辦法保證不出現(xiàn)今天遇到的種種問題,比如職責(zé)不清。我們的目的是分層開發(fā),專業(yè)的人,專注做專業(yè)的事?;贘AVA的基礎(chǔ)架構(gòu)已經(jīng)非常強(qiáng)大而且穩(wěn)定,而且更適合做現(xiàn)在架構(gòu)的事情。
四、淘寶基于Node的前后端分離
上圖是我理解的淘寶基于Node的前后端分離分層,以及Node的職責(zé)范圍。簡單解釋下: 最上端是服務(wù)端,就是我們常說的后端。后端對于我們來說,就是一個(gè)接口的集合,服務(wù)端提供各種各樣的接口供我們使用。因?yàn)橛蠳ode層,也不用局限是什么形式的服務(wù)。對于后端開發(fā)來說,他們只用關(guān)心業(yè)務(wù)代碼的接口實(shí)現(xiàn)。 服務(wù)端下面是Node應(yīng)用。 Node應(yīng)用中有一層Model Proxy與服務(wù)端進(jìn)行通訊。這一層主要目前是抹平我們對不同接口的調(diào)用方式,封裝一些view層需要的Model。 Node層還能輕松實(shí)現(xiàn)原來vmcommon,tms(引用淘寶內(nèi)容管理系統(tǒng))等需求。 Node層要使用什么框架由開發(fā)者自己決定。不過推薦使用express+xTemplate的組合,xTemplate能做到前后端公用。 怎么用Node大家自己決定,但是令人興奮的是,我們終于可以使用Node輕松實(shí)現(xiàn)我們想要的輸出方式:JSON/JSONP/RESTful/HTML/BigPipe/Comet/Socket/同步、異步,想怎么整就怎么整,完全根據(jù)你的場景決定。 瀏覽器層在我們這個(gè)架構(gòu)中沒有變化,也不希望因?yàn)橐隢ode改變你以前在瀏覽器中開發(fā)的認(rèn)知。 引入Node,只是把本該就前端控制的部分交由前端掌控。
這種模式我們已經(jīng)有兩個(gè)項(xiàng)目在開發(fā)中,雖然還沒上線,但是無論是在開發(fā)效率,還是在性能優(yōu)化方面,我們都已經(jīng)嘗到了甜頭。
五、我們還需要要做什么? 把Node的開發(fā)流程集成到淘寶現(xiàn)有的SCM流程中。 基礎(chǔ)設(shè)施建設(shè),比如session,logger等通用模塊。 最佳開發(fā)實(shí)踐 線上成功案例 大家對Node前后端分離概念的認(rèn)識 安全 性能 …
技術(shù)上不會(huì)有太多需要去創(chuàng)新和研究的,已經(jīng)有非常多現(xiàn)成的積累。其實(shí)關(guān)鍵是一些流程的打通和通用解決方案的積累,相信隨著更多的項(xiàng)目實(shí)踐,這塊慢慢會(huì)變成一個(gè)穩(wěn)定的流程。
六、“中途島”
雖然“基于NodeJS的全棧式開發(fā)”模式很讓人興奮,但是把基于Node的全棧開發(fā)變成一個(gè)穩(wěn)定,讓大家都能接受的東西還有很多路要走,我們正在進(jìn)行的“中途島”項(xiàng)目就是為了解決這個(gè)問題。雖然我們起步不久,但是離目標(biāo)已經(jīng)越來越近??!
技術(shù)問答
2014-05-26 12:02:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
我 用的是AllInOne版本的64位eclipse,使用插件生成的項(xiàng)目,編譯ROOT時(shí)出現(xiàn)一個(gè)異常。我貼出異常部分的日志,描述是plexus的interpolation路徑不對。但我不清楚項(xiàng)目找的不是org\codehaus\plexus\plexus-interpolation而是org\codehaus\plexus\interpolation 目錄。麻煩幫看看是哪里的原因,非常感謝!下面是異常日志:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:2.3.2:jar (default-jar) on project koala_demo-infra: Execution default-jar of goal org.apache.maven.plugins:maven-jar-plugin:2.3.2:jar failed: A required class was missing while executing org.apache.maven.plugins:maven-jar-plugin:2.3.2?? org/codehaus/plexus/interpolation/InterpolationException
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.apache.maven.plugins:maven-jar-plugin:2.3.2
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/d:/work/Java/Lib/Common/org/apache/maven/plugins/maven-jar-plugin/2.3.2/maven-jar-plugin-2.3.2.jar
[ERROR] urls[1] = file:/d:/work/Java/Lib/Common/junit/junit/3.8.1/junit-3.8.1.jar
[ERROR] urls[2] = file:/d:/work/Java/Lib/Common/org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.jar
[ERROR] urls[3] = file:/d:/work/Java/Lib/Common/org/codehaus/plexus/plexus-archiver/2.0.1/plexus-archiver-2.0.1.jar
[ERROR] urls[4] = file:/d:/work/Java/Lib/Common/org/codehaus/plexus/plexus-io/2.0.1/plexus-io-2.0.1.jar
[ERROR] urls[5] = file:/d:/work/Java/Lib/Common/commons-lang/commons-lang/2.1/commons-lang-2.1.jar
[ERROR] urls[6] = file:/d:/work/Java/Lib/Common/org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------: org.codehaus.plexus.interpolation.InterpolationException
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:2.3.2:jar (default-jar) on project koala_demo-infra: Execution default-jar of goal org.apache.maven.plugins:maven-jar-plugin:2.3.2:jar failed: A required class was missing while executing org.apache.maven.plugins:maven-jar-plugin:2.3.2?? org/codehaus/plexus/interpolation/InterpolationException
-----------------------------------------------------
realm = plugin>org.apache.maven.plugins:maven-jar-plugin:2.3.2
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/d:/work/Java/Lib/Common/org/apache/maven/plugins/maven-jar-plugin/2.3.2/maven-jar-plugin-2.3.2.jar
urls[1] = file:/d:/work/Java/Lib/Common/junit/junit/3.8.1/junit-3.8.1.jar
urls[2] = file:/d:/work/Java/Lib/Common/org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.jar
urls[3] = file:/d:/work/Java/Lib/Common/org/codehaus/plexus/plexus-archiver/2.0.1/plexus-archiver-2.0.1.jar
urls[4] = file:/d:/work/Java/Lib/Common/org/codehaus/plexus/plexus-io/2.0.1/plexus-io-2.0.1.jar
urls[5] = file:/d:/work/Java/Lib/Common/commons-lang/commons-lang/2.1/commons-lang-2.1.jar
urls[6] = file:/d:/work/Java/Lib/Common/org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar
Number of foreign imports: 1
import: Entry[import from realm ClassRealm[maven.api, parent: null]]
-----------------------------------------------------
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-jar of goal org.apache.maven.plugins:maven-jar-plugin:2.3.2:jar failed: A required class was missing while executing org.apache.maven.plugins:maven-jar-plugin:2.3.2?? org/codehaus/plexus/interpolation/InterpolationException
-----------------------------------------------------
realm = plugin>org.apache.maven.plugins:maven-jar-plugin:2.3.2
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/d:/work/Java/Lib/Common/org/apache/maven/plugins/maven-jar-plugin/2.3.2/maven-jar-plugin-2.3.2.jar
urls[1] = file:/d:/work/Java/Lib/Common/junit/junit/3.8.1/junit-3.8.1.jar
urls[2] = file:/d:/work/Java/Lib/Common/org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.jar
urls[3] = file:/d:/work/Java/Lib/Common/org/codehaus/plexus/plexus-archiver/2.0.1/plexus-archiver-2.0.1.jar
urls[4] = file:/d:/work/Java/Lib/Common/org/codehaus/plexus/plexus-io/2.0.1/plexus-io-2.0.1.jar
urls[5] = file:/d:/work/Java/Lib/Common/commons-lang/commons-lang/2.1/commons-lang-2.1.jar
urls[6] = file:/d:/work/Java/Lib/Common/org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar
Number of foreign imports: 1
import: Entry[import from realm ClassRealm[maven.api, parent: null]]
-----------------------------------------------------
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:127)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
Caused by: org.apache.maven.plugin.PluginContainerException: A required class was missing while executing org.apache.maven.plugins:maven-jar-plugin:2.3.2?? org/codehaus/plexus/interpolation/InterpolationException
-----------------------------------------------------
realm = plugin>org.apache.maven.plugins:maven-jar-plugin:2.3.2
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/d:/work/Java/Lib/Common/org/apache/maven/plugins/maven-jar-plugin/2.3.2/maven-jar-plugin-2.3.2.jar
urls[1] = file:/d:/work/Java/Lib/Common/junit/junit/3.8.1/junit-3.8.1.jar
urls[2] = file:/d:/work/Java/Lib/Common/org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.jar
urls[3] = file:/d:/work/Java/Lib/Common/org/codehaus/plexus/plexus-archiver/2.0.1/plexus-archiver-2.0.1.jar
urls[4] = file:/d:/work/Java/Lib/Common/org/codehaus/plexus/plexus-io/2.0.1/plexus-io-2.0.1.jar
urls[5] = file:/d:/work/Java/Lib/Common/commons-lang/commons-lang/2.1/commons-lang-2.1.jar
urls[6] = file:/d:/work/Java/Lib/Common/org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar
Number of foreign imports: 1
import: Entry[import from realm ClassRealm[maven.api, parent: null]]
-----------------------------------------------------
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:125)
... 20 more
Caused by: java.lang.NoClassDefFoundError: org/codehaus/plexus/interpolation/InterpolationException
at org.apache.maven.plugin.jar.AbstractJarMojo.createArchive(AbstractJarMojo.java:188)
at org.apache.maven.plugin.jar.AbstractJarMojo.execute(AbstractJarMojo.java:235)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
... 20 more
Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.interpolation.InterpolationException
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
... 23 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :koala_demo-infra
技術(shù)問答
2013-09-12 10:19:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>>
Koala (考拉) 是一款應(yīng)用在 Java EE 企業(yè)級應(yīng)用開發(fā)領(lǐng)域,用于幫助架構(gòu)師簡化系統(tǒng)設(shè)計(jì),降低框架耦合度,提高系統(tǒng)靈活性,提供開發(fā)工程師工作效率,降低成本的平臺(tái)工具。
Koala 的下載和安裝請看 這里 。
下面是使用 Koala 創(chuàng)建一個(gè)最基礎(chǔ)項(xiàng)目的完整過程:

自定義生成項(xiàng)目
打開eclipse的新建項(xiàng)目向?qū)υ捒?選擇Koala->Koala Project。
點(diǎn)擊Next按鈕,出現(xiàn)Koala的新建項(xiàng)目向?qū)?如圖:
在“Project name”處填寫項(xiàng)目名稱,在“Location”處選擇項(xiàng)目路徑,在“Working sets”處選擇working set。如果其他使用默認(rèn),可只填項(xiàng)目名稱。點(diǎn)擊Next按鈕,進(jìn)入下一步,進(jìn)入maven信息填寫的向?qū)ы摗?
填寫Group Id,Artifact Id,Version和Description等信息,除了Description外其他均為必填項(xiàng)。點(diǎn)擊Next按鈕,進(jìn)入添加模塊的向?qū)ы摗?
如圖:中間顯示的當(dāng)前項(xiàng)目的子模塊,右邊是相應(yīng)的子模塊的操作,包括新增,修改以及刪除等操作
另外,你可以選擇JPA或Mybatis做為數(shù)據(jù)庫實(shí)現(xiàn),Koala支持這兩種方式
你也可以使用SpringMVC或Struts2MVC做為前臺(tái)MVC實(shí)現(xiàn)
選擇Use Default Modules會(huì)根據(jù)DDD領(lǐng)域思想自動(dòng)生成五層模型的項(xiàng)目
其中應(yīng)用層分為接口和實(shí)現(xiàn)兩個(gè)模塊。
“demo-infra”為基礎(chǔ)設(shè)施層的模塊,
“demo-core”為領(lǐng)域?qū)拥哪K,
“demo-application”為應(yīng)用層接口模塊,
“demo-applicationImpl”為應(yīng)用層實(shí)現(xiàn)模塊,
“demo-web”為展現(xiàn)層模,
demo-conf為配置模塊。
開發(fā)這可以根據(jù)項(xiàng)目需要,添加模塊,并對已有模塊配置進(jìn)行編輯或者刪除操作。
下面介紹項(xiàng)目模塊配置的操作。
點(diǎn)擊右邊add按鈕,進(jìn)入模塊信息編輯頁面。
在編輯模塊信息頁面中,填寫模塊名稱,選擇模塊類型(即根據(jù)DDD分層思想,選擇該模塊所在層,如基礎(chǔ)設(shè)施層,領(lǐng)域?qū)?應(yīng)用層,展現(xiàn)層等)
功能依賴是指當(dāng)前子模塊中加入一些常用的功能,如FTP,緩存等。加入這些功能是開箱即用的。
模塊依賴是指定義模塊之間的依賴關(guān)系。定義模塊依賴前最好對DDD思想有一定的了解
點(diǎn)擊確認(rèn)便新增加了一個(gè)子模塊
你還可以編輯模塊或刪除它們
根據(jù)項(xiàng)目情況,添加完所需的模塊之后,點(diǎn)擊Next按鈕,進(jìn)入下一步。如果所添加的模塊中有視圖層的模塊,將會(huì)進(jìn)入子系統(tǒng)集成的配置界面。
Koala為你的項(xiàng)目提供了三個(gè)子系統(tǒng)集成,包括權(quán)限子系統(tǒng),監(jiān)控子系統(tǒng)以及通用查詢子系統(tǒng)
選中復(fù)選框,以集成你需要集成的子系統(tǒng),點(diǎn)擊每個(gè)子系統(tǒng)右邊的config可以進(jìn)行更為詳細(xì)的配置,具體參考各子系統(tǒng)的相關(guān)教程。
完成選擇之后,點(diǎn)擊Next按鈕,進(jìn)入最后的項(xiàng)目信息匯總展示頁面。
該 頁面展示了之前所填寫的項(xiàng)目極其各模塊的所有信息供用戶核對。Project中顯示了所填寫的項(xiàng)目名稱,Maven中顯示了所填寫的項(xiàng)目的maven信 息,包括Group Id,Artifact Id,Version和Description等內(nèi)容。Modules中顯示了所填寫的各個(gè)模塊的詳細(xì)信息,包括模塊類型,模塊名稱,模塊間的依賴等內(nèi) 容。如果發(fā)現(xiàn)信息有誤,可點(diǎn)擊Back按鈕回到對應(yīng)的向?qū)ы撁嫒プ鲂薷摹H绻藢o誤,點(diǎn)擊Finish按鈕完成項(xiàng)目信息的填寫并根據(jù)所填信息開始生成項(xiàng) 目。
在生成項(xiàng)目完成之后會(huì)彈出導(dǎo)入項(xiàng)目的對話框。


選擇要導(dǎo)入的項(xiàng)目和模塊,點(diǎn)擊Next按鈕進(jìn)入查看項(xiàng)目導(dǎo)入信息頁面或直接點(diǎn)擊Finish按鈕開始項(xiàng)目和模塊的導(dǎo)入。
點(diǎn)擊Finish按鈕開始導(dǎo)入項(xiàng)目和模塊。
這樣便完成了一個(gè)項(xiàng)目的創(chuàng)建,這是一個(gè)可運(yùn)行的項(xiàng)目,默認(rèn)集成了jetty服務(wù)器以支持開發(fā)
使用maven clean install編譯這些項(xiàng)目,再運(yùn)行它們
訪問http://localhost:8080以查看效果

從現(xiàn)在開始,在生成的項(xiàng)目的基礎(chǔ)上開發(fā)吧。
技術(shù)問答
2013-09-05 08:20:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>> Koala這個(gè)項(xiàng)目停止維護(hù)了嗎?為什么都找不到人?群也加入不了
技術(shù)問答
2016-05-26 12:20:00
HDC調(diào)試需求開發(fā)(15萬預(yù)算),能者速來!>>> [INFO] ------------------------------------------------------------------------[INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 20:14 min [INFO] Finished at: 2015-03-02T10:14:08+08:00 [INFO] Final Memory: 9M/121M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal on project HRTWeb-web: Could not resolve dependencies for project org.hrt:HRTWeb-web:war:1.0.0-SNAPSHOT: The following artifacts could not be resolved: org.hrt:HRTWeb-facade??1.0.0-SNAPSHOT, commons-lang:commons-lang??2.6, org.hrt:HRTWeb-conf??1.0.0-SNAPSHOT, org.hrt:HRTWeb-infra??1.0.0-SNAPSHOT, org.hrt:HRTWeb-facade-impl??1.0.0-SNAPSHOT, com.google.guava:guava??18.0, proxool:proxool??0.9.1: Could not find artifact org.hrt:HRTWeb-facade??1.0.0-SNAPSHOT in nexus-osc (http://maven.oschina.net/content/groups/public/) -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
技術(shù)問答
2015-03-02 10:15:00