轉自: http://blog.51cto.com/morrowind/1933538
前言:
公司比較奇葩,應用服務器用的還是老版本的resin、jboss這些。由於原有dubbo-admin無法訪問,就想用tomcat重新部署套。官網dubbo.io提供的下載地址已經無法下載,那就用源碼編譯吧。
環境:
系統:linux
maven:3.5.0
java:1.7.0_80
問題:
git clone https://github.com/alibaba/dubbo.git
git完源碼後,以爲按照github上的說明一步一步來就可以編譯成功,其實不然。官方文檔沒有說明java版本,而說明的maven版本是2.2,mvn install 一直報錯,加了-X參數後看到一些詳細信息,但搜索到的都是說java版本問題。
解決:
於是將java版本從1.6-1.8都試了,但還是一樣的錯誤……無果,於是找了位開發,讓其幫build下,結果……居然成功了,但啓tomcat時又是各種錯,就問了下開發的編譯環境:
maven:3.5+
java:1.8+
這次查tomcat日誌信息確實是java版本的問題了,但不是tomcat使用的java版本,而是build dubbo時使用的java版本問題,build dubbo時不能使用java1.8+的版本。於是使用java1.7 自己重新build了下,在放到tomcat中運行,可以正常訪問了
插曲:
看到網上有人說直接到duboo-admin目錄下mvn package -Dmaven.skip.test=true 就可以打包成功,但我這報錯,錯誤信息如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
[ERROR] Failed to execute goal on project dubbo-admin: Could not resolve dependencies for project com.alibaba:dubbo-admin:war:2.5.4-SNAPSHOT: Could not find artifact com.alibaba:dubbo:jar:2.5.4-SNAPSHOT -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project dubbo-admin: Could not resolve dependencies for project com.alibaba:dubbo-admin:war:2.5.4-SNAPSHOT: Could not find artifact com.alibaba:dubbo:jar:2.5.4-SNAPSHOT at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:221) at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies(LifecycleDependencyResolver.java:127) at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved(MojoExecutor.java:246) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:200) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345) at org.apache.maven.cli.MavenCli.main(MavenCli.java:191) 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.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.project.DependencyResolutionException: Could not resolve dependencies for project com.alibaba:dubbo-admin:war:2.5.4-SNAPSHOT: Could not find artifact com.alibaba:dubbo:jar:2.5.4-SNAPSHOT at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:208) at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:195) ... 23 more Caused by: org.eclipse.aether.resolution.DependencyResolutionException: Could not find artifact com.alibaba:dubbo:jar:2.5.4-SNAPSHOT at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:393) at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:202) ... 24 more Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Could not find artifact com.alibaba:dubbo:jar:2.5.4-SNAPSHOT at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:453) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:255) at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:376) ... 25 more Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact com.alibaba:dubbo:jar:2.5.4-SNAPSHOT at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:443) ... 27 more [ERROR] [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 |
想着應該是沒有編譯dubbo的問題導致缺少依賴jar,於是到dubbo主目錄,將dubbo全編譯了下,看到成功後,在dubbo-admin/target 下就生成了需要的dubbo-admin-2.5.4-SNAPSHOT.war文件。這時可將dubbo-admin-2.5.4-SNAPSHOT目錄內的文件直接放到tomcat的ROOT目錄下,修改dubbo.properties文件內的zookeeper
集羣方式爲
1
2
3
|
dubbo.registry.address=zookeeper://ip_1:2181?backup=ip_2:2181,ip_3:2181 dubbo.admin.root.password=root dubbo.admin.guest.password=guest |
驗證:
瀏覽器訪問tomcat地址,用root或guest登錄,頁面如下