change the webservice module but does'n finish. (#268)

* 对dubbo-sample-zookeeper部分的修改。
调整了pom依赖。
修改了引入zk。
增加了configuration文件。

* change depends on outside zookeeper.
remove embeddedzookeeper
remove unused config file

* add test case
remove some useless pom config
change the name to match webservice module

* use tomcat server, fix depends

* fix webservice address

* set timeout

* change the consumer side to refer service by registry but not direct url

* Remove comment

Co-authored-by: yi.chen2 <yi.chen2@dmall.com>
Co-authored-by: gongdewei <kylixs@qq.com>
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
diff --git a/dubbo-samples-webservice/case-configuration.yml b/dubbo-samples-webservice/case-configuration.yml
new file mode 100644
index 0000000..1a20d6f
--- /dev/null
+++ b/dubbo-samples-webservice/case-configuration.yml
@@ -0,0 +1,27 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from: app-external-zookeeper.yml
+
+props:
+  project_name: dubbo-samples-webservice
+  project_dir: dubbo-samples-webservice-provider
+  main_class: org.apache.dubbo.samples.webservice.provider.WebserviceProvider
+  zookeeper_port: 2181
+  dubbo_port: 8080
+
+
+
diff --git a/dubbo-samples-webservice/case-versions.conf b/dubbo-samples-webservice/case-versions.conf
new file mode 100644
index 0000000..978f7e7
--- /dev/null
+++ b/dubbo-samples-webservice/case-versions.conf
@@ -0,0 +1,6 @@
+
+# Supported component versions of the test case
+
+# Spring app
+dubbo.version=2.7*, 3.*
+spring.version=4.*, 5.*
diff --git a/dubbo-samples-webservice/dubbo-samples-webservice-consumer/pom.xml b/dubbo-samples-webservice/dubbo-samples-webservice-consumer/pom.xml
index b9ffe64..74d0ac8 100644
--- a/dubbo-samples-webservice/dubbo-samples-webservice-consumer/pom.xml
+++ b/dubbo-samples-webservice/dubbo-samples-webservice-consumer/pom.xml
@@ -24,109 +24,22 @@
         <version>1.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-
-    <groupId>org.apache.dubbo</groupId>
     <artifactId>dubbo-samples-webservice-consumer</artifactId>
-    <version>1.0-SNAPSHOT</version>
-    <packaging>jar</packaging>
-
-    <properties>
-        <maven.compiler.source>1.8</maven.compiler.source>
-        <maven.compiler.target>1.8</maven.compiler.target>
-        <slf4j-log4j12.version>1.7.21</slf4j-log4j12.version>
-        <servlet-api.version>2.5</servlet-api.version>
-        <jsp-api.version>2.2</jsp-api.version>
-        <jstl.version>1.2</jstl.version>
-        <spring.version>4.3.16.RELEASE</spring.version>
-        <commons-lang3.version>3.4</commons-lang3.version>
-        <dubbo.version>2.7.7</dubbo.version>
-        <cxf.version>3.3.7</cxf.version>
-        <zookeeper.version>3.4.13</zookeeper.version>
-        <curator-recipes.version>4.0.1</curator-recipes.version>
-        <netty-all.version>4.1.25.Final</netty-all.version>
-        <jsonrpc4j.version>1.5.3</jsonrpc4j.version>
-    </properties>
 
     <dependencies>
         <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <version>${slf4j-log4j12.version}</version>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-            <version>${dubbo.version}</version>
+            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <type>pom</type>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-samples-webservice-interface</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.zookeeper</groupId>
-            <artifactId>zookeeper</artifactId>
-            <version>${zookeeper.version}</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>slf4j-api</artifactId>
-                    <groupId>org.slf4j</groupId>
-                </exclusion>
-                <exclusion>
-                    <artifactId>slf4j-log4j12</artifactId>
-                    <groupId>org.slf4j</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.curator</groupId>
-            <artifactId>curator-recipes</artifactId>
-            <version>${curator-recipes.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.zookeeper</groupId>
-                    <artifactId>zookeeper</artifactId>
-                </exclusion>
-                <exclusion>
-                    <artifactId>slf4j-api</artifactId>
-                    <groupId>org.slf4j</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>com.github.briandilley.jsonrpc4j</groupId>
-            <artifactId>jsonrpc4j</artifactId>
-            <version>${jsonrpc4j.version}</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>jackson-annotations</artifactId>
-                    <groupId>com.fasterxml.jackson.core</groupId>
-                </exclusion>
-                <exclusion>
-                    <artifactId>slf4j-api</artifactId>
-                    <groupId>org.slf4j</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-frontend-simple</artifactId>
-            <version>${cxf.version}</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>stax-ex</artifactId>
-                    <groupId>org.jvnet.staxex</groupId>
-                </exclusion>
-                <exclusion>
-                    <artifactId>javax.xml.soap-api</artifactId>
-                    <groupId>javax.xml.soap</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-transports-http</artifactId>
-            <version>${cxf.version}</version>
+            <version>${project.version}</version>
         </dependency>
     </dependencies>
 
diff --git a/dubbo-samples-webservice/dubbo-samples-webservice-consumer/src/main/java/org/apache/dubbo/samples/webservice/consumer/Application.java b/dubbo-samples-webservice/dubbo-samples-webservice-consumer/src/main/java/org/apache/dubbo/samples/webservice/consumer/WebserviceConsumer.java
similarity index 96%
rename from dubbo-samples-webservice/dubbo-samples-webservice-consumer/src/main/java/org/apache/dubbo/samples/webservice/consumer/Application.java
rename to dubbo-samples-webservice/dubbo-samples-webservice-consumer/src/main/java/org/apache/dubbo/samples/webservice/consumer/WebserviceConsumer.java
index a23e827..c480f2a 100644
--- a/dubbo-samples-webservice/dubbo-samples-webservice-consumer/src/main/java/org/apache/dubbo/samples/webservice/consumer/Application.java
+++ b/dubbo-samples-webservice/dubbo-samples-webservice-consumer/src/main/java/org/apache/dubbo/samples/webservice/consumer/WebserviceConsumer.java
@@ -19,7 +19,7 @@
 import org.apache.dubbo.samples.webservice.DemoService;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-public class Application {
+public class WebserviceConsumer {
     public static void main(String[] args) throws Exception {
         ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/dubbo-samples-webservice-consumer.xml");
         context.start();
diff --git a/dubbo-samples-webservice/dubbo-samples-webservice-consumer/src/main/resources/spring/dubbo-samples-webservice-consumer.xml b/dubbo-samples-webservice/dubbo-samples-webservice-consumer/src/main/resources/spring/dubbo-samples-webservice-consumer.xml
index 7831e43..eb79539 100644
--- a/dubbo-samples-webservice/dubbo-samples-webservice-consumer/src/main/resources/spring/dubbo-samples-webservice-consumer.xml
+++ b/dubbo-samples-webservice/dubbo-samples-webservice-consumer/src/main/resources/spring/dubbo-samples-webservice-consumer.xml
@@ -21,9 +21,8 @@
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
        http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
 
-    <dubbo:application name="demo-consumer"/>
-
-    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
-
-    <dubbo:reference id="demoService" check="false" interface="org.apache.dubbo.samples.webservice.DemoService"/>
+    <dubbo:application name="dubbo-samples-webservice-consumer"/>
+    <dubbo:registry address="zookeeper://${zookeeper.address:127.0.0.1}:${zookeeper.port:2181}"/>
+    <dubbo:reference id="demoService" check="false" timeout="3000"
+                     interface="org.apache.dubbo.samples.webservice.DemoService"/>
 </beans>
diff --git a/dubbo-samples-webservice/dubbo-samples-webservice-provider/pom.xml b/dubbo-samples-webservice/dubbo-samples-webservice-provider/pom.xml
index a9c360c..bd5c1d4 100644
--- a/dubbo-samples-webservice/dubbo-samples-webservice-provider/pom.xml
+++ b/dubbo-samples-webservice/dubbo-samples-webservice-provider/pom.xml
@@ -24,124 +24,56 @@
         <version>1.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-
-    <groupId>org.apache.dubbo</groupId>
     <artifactId>dubbo-samples-webservice-provider</artifactId>
-    <version>1.0-SNAPSHOT</version>
-    <packaging>war</packaging>
-
     <properties>
-        <maven.compiler.source>1.8</maven.compiler.source>
-        <maven.compiler.target>1.8</maven.compiler.target>
-        <slf4j-log4j12.version>1.7.21</slf4j-log4j12.version>
-        <servlet-api.version>2.5</servlet-api.version>
-        <jsp-api.version>2.2</jsp-api.version>
-        <jstl.version>1.2</jstl.version>
-        <spring.version>4.3.16.RELEASE</spring.version>
-        <commons-lang3.version>3.4</commons-lang3.version>
-        <dubbo.version>2.7.7</dubbo.version>
-        <cxf.version>3.3.7</cxf.version>
-        <zookeeper.version>3.4.13</zookeeper.version>
-        <curator-recipes.version>4.0.1</curator-recipes.version>
-        <netty-all.version>4.1.25.Final</netty-all.version>
+        <tomcat.version>8.0.53</tomcat.version>
     </properties>
-
     <dependencies>
         <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <version>${slf4j-log4j12.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <version>${servlet-api.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet.jsp</groupId>
-            <artifactId>jsp-api</artifactId>
-            <version>${jsp-api.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jstl</artifactId>
-            <version>${jstl.version}</version>
-        </dependency>
-        <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-web</artifactId>
-            <version>${spring.version}</version>
         </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-webmvc</artifactId>
-            <version>${spring.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo</artifactId>
-            <version>${dubbo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-test</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.cxf</groupId>
             <artifactId>cxf-rt-frontend-simple</artifactId>
-            <version>${cxf.version}</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>stax-ex</artifactId>
-                    <groupId>org.jvnet.staxex</groupId>
-                </exclusion>
-                <exclusion>
-                    <artifactId>javax.xml.soap-api</artifactId>
-                    <groupId>javax.xml.soap</groupId>
-                </exclusion>
-            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.cxf</groupId>
             <artifactId>cxf-rt-transports-http</artifactId>
-            <version>${cxf.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.apache.zookeeper</groupId>
-            <artifactId>zookeeper</artifactId>
-            <version>${zookeeper.version}</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>slf4j-api</artifactId>
-                    <groupId>org.slf4j</groupId>
-                </exclusion>
-                <exclusion>
-                    <artifactId>slf4j-log4j12</artifactId>
-                    <groupId>org.slf4j</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.curator</groupId>
-            <artifactId>curator-recipes</artifactId>
-            <version>${curator-recipes.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.zookeeper</groupId>
-                    <artifactId>zookeeper</artifactId>
-                </exclusion>
-                <exclusion>
-                    <artifactId>slf4j-api</artifactId>
-                    <groupId>org.slf4j</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-all</artifactId>
-            <version>${netty-all.version}</version>
+            <groupId>org.apache.tomcat.embed</groupId>
+            <artifactId>tomcat-embed-core</artifactId>
+            <version>${tomcat.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-samples-webservice-interface</artifactId>
             <version>1.0-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-samples-webservice-consumer</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/java/org/apache/dubbo/samples/webservice/provider/WebserviceProvider.java b/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/java/org/apache/dubbo/samples/webservice/provider/WebserviceProvider.java
new file mode 100644
index 0000000..cfb1f0a
--- /dev/null
+++ b/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/java/org/apache/dubbo/samples/webservice/provider/WebserviceProvider.java
@@ -0,0 +1,18 @@
+package org.apache.dubbo.samples.webservice.provider;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import java.util.concurrent.CountDownLatch;
+
+public class WebserviceProvider {
+
+    public static void main(String[] args) throws Exception {
+        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/dubbo-samples-webservice-provider.xml");
+        context.registerShutdownHook();
+        context.start();
+
+        System.out.println("dubbo service started");
+        new CountDownLatch(1).await();
+    }
+
+}
diff --git a/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/java/org/apache/dubbo/samples/webservice/provider/impl/DemoServiceImpl.java b/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/java/org/apache/dubbo/samples/webservice/provider/impl/DemoServiceImpl.java
index 847c71c..e561ba5 100644
--- a/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/java/org/apache/dubbo/samples/webservice/provider/impl/DemoServiceImpl.java
+++ b/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/java/org/apache/dubbo/samples/webservice/provider/impl/DemoServiceImpl.java
@@ -21,6 +21,6 @@
 public class DemoServiceImpl implements DemoService {
     @Override
     public String hello(String word) {
-        return "Time: " + System.currentTimeMillis() + ", word: " + word;
+        return "Hello, word: " + word;
     }
 }
diff --git a/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/resources/log4j.properties b/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/resources/log4j.properties
index 05c29d7..d6ecd5c 100644
--- a/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/resources/log4j.properties
+++ b/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/resources/log4j.properties
@@ -1,13 +1,26 @@
+#
+#
+#   Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  See the NOTICE file distributed with
+#   this work for additional information regarding copyright ownership.
+#   The ASF licenses this file to You under the Apache License, Version 2.0
+#   (the "License"); you may not use this file except in compliance with
+#   the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#
 
-log4j.rootLogger=DEBUG,A1,R
-
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
-
-log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.R.File=log.txt
-log4j.appender.R.MaxFileSize=500KB
-log4j.appender.R.MaxBackupIndex=10
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
\ No newline at end of file
+###set log levels###
+log4j.rootLogger=info, stdout
+###output to the console###
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy hh:mm:ss:sss z}] %t %5p %c{2}: %m%n
\ No newline at end of file
diff --git a/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/resources/spring/spring.xml b/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/resources/spring/dubbo-samples-webservice-provider.xml
similarity index 81%
rename from dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/resources/spring/spring.xml
rename to dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/resources/spring/dubbo-samples-webservice-provider.xml
index d85eaec..e254a5c 100644
--- a/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/resources/spring/spring.xml
+++ b/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/main/resources/spring/dubbo-samples-webservice-provider.xml
@@ -23,21 +23,21 @@
                         http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
 
 
-
     <!-- 提供方应用信息,用于计算依赖关系 -->
-    <dubbo:application name="dubbo-webservice-app" />
+    <dubbo:application name="dubbo-samples-webservice-provider"/>
 
     <!-- 使用zookeeper注册中心暴露服务地址 -->
-    <dubbo:registry address="zookeeper://127.0.0.1:2181" />
+    <dubbo:registry address="zookeeper://${zookeeper.address:127.0.0.1}:${zookeeper.port:2181}"/>
 
     <!-- 用webservice协议在8080端口暴露服务 -->
-    <dubbo:protocol name="webservice" port="8082" server="servlet" contextpath="dubbo_samples_webservice_provider_war/services"/>
+    <dubbo:protocol name="webservice" port="8080" server="tomcat"
+                    contextpath="dubbo_samples_webservice_provider_war/services"/>
 
     <!--    <dubbo:protocol name="dubbo" port="20880" />-->
 
     <!-- 声明需要暴露的服务接口 -->
-    <dubbo:service interface="org.apache.dubbo.samples.webservice.DemoService" ref="demoService" />
+    <dubbo:service interface="org.apache.dubbo.samples.webservice.DemoService" ref="demoService"/>
 
     <!-- 和本地bean一样实现服务 -->
-    <bean id="demoService" class="org.apache.dubbo.samples.webservice.provider.impl.DemoServiceImpl" />
+    <bean id="demoService" class="org.apache.dubbo.samples.webservice.provider.impl.DemoServiceImpl"/>
 </beans>
\ No newline at end of file
diff --git a/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/test/java/org/apache/dubbo/samples/webservice/WebserviceIT.java b/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/test/java/org/apache/dubbo/samples/webservice/WebserviceIT.java
new file mode 100644
index 0000000..ac8c476
--- /dev/null
+++ b/dubbo-samples-webservice/dubbo-samples-webservice-provider/src/test/java/org/apache/dubbo/samples/webservice/WebserviceIT.java
@@ -0,0 +1,23 @@
+package org.apache.dubbo.samples.webservice;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(value = "classpath:spring/dubbo-samples-webservice-consumer.xml")
+public class WebserviceIT {
+
+    @Autowired
+    @Qualifier("demoService")
+    private DemoService consumer;
+
+    @Test
+    public void test() throws Exception {
+        Assert.assertEquals("Hello, word: webservice", consumer.hello("webservice"));
+    }
+}
diff --git a/dubbo-samples-webservice/pom.xml b/dubbo-samples-webservice/pom.xml
index da55aed..e520df8 100644
--- a/dubbo-samples-webservice/pom.xml
+++ b/dubbo-samples-webservice/pom.xml
@@ -35,8 +35,66 @@
         <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
         <source.level>1.8</source.level>
         <target.level>1.8</target.level>
+        <junit.version>4.12</junit.version>
+        <spring.version>4.3.16.RELEASE</spring.version>
+        <dubbo.version>2.7.8</dubbo.version>
     </properties>
 
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework</groupId>
+                <artifactId>spring-framework-bom</artifactId>
+                <version>${spring.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-bom</artifactId>
+                <version>${dubbo.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <version>${dubbo.version}</version>
+                <type>pom</type>
+            </dependency>
+            <dependency>
+                <groupId>junit</groupId>
+                <artifactId>junit</artifactId>
+                <version>${junit.version}</version>
+            </dependency>
+<!--            <dependency>-->
+<!--                <groupId>javax.servlet</groupId>-->
+<!--                <artifactId>servlet-api</artifactId>-->
+<!--                <version>3.1.0</version>-->
+<!--            </dependency>-->
+            <dependency>
+                <groupId>org.apache.cxf</groupId>
+                <artifactId>cxf-rt-frontend-simple</artifactId>
+                <version>3.3.7</version>
+                <exclusions>
+                    <exclusion>
+                        <artifactId>stax-ex</artifactId>
+                        <groupId>org.jvnet.staxex</groupId>
+                    </exclusion>
+                    <exclusion>
+                        <artifactId>javax.xml.soap-api</artifactId>
+                        <groupId>javax.xml.soap</groupId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.cxf</groupId>
+                <artifactId>cxf-rt-transports-http</artifactId>
+                <version>3.3.7</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
     <build>
         <plugins>
             <plugin>