Browse Source

Merge branch 'master' of http://10.1.235.20:3000/rest/rest-guide

liutong3 3 years ago
parent
commit
fd017b982c

+ 39 - 4
ipu-rest-demo/pom.xml

@ -26,11 +26,11 @@
26 26
    </distributionManagement>
27 27
    
28 28
	<properties>
29
        <dockerDirectory>${project.basedir}/docker</dockerDirectory>
29 30
        <!-- 设置配置文件输出目录 -->
30
        <output-resources-conf>${project.basedir}/docker/target/conf</output-resources-conf>
31
        <output-resources-conf>${dockerDirectory}/target/conf</output-resources-conf>
31 32
        <!-- 设置依赖jar输出目录 -->
32
        <output-dependency-jar>${project.basedir}/docker/target/lib</output-dependency-jar>
33
        <dockerDirectory>${project.basedir}/docker</dockerDirectory>
33
        <output-dependency-jar>${dockerDirectory}/target/lib</output-dependency-jar>
34 34
		<env>dev</env>
35 35
		<skip-test>true</skip-test>
36 36
		<start-class>com.ai.ipu.server.demo.IpuRestDemoStart</start-class>
@ -68,6 +68,21 @@
68 68
				<type>pom</type>
69 69
				<scope>import</scope>
70 70
			</dependency>
71
			<dependency>
72
				<groupId>org.springframework.cloud</groupId>
73
				<artifactId>spring-cloud-dependencies</artifactId>
74
				<version>Greenwich.RELEASE</version>
75
				<type>pom</type>
76
				<scope>import</scope>
77
			</dependency>
78
79
			<dependency>
80
				<groupId>com.alibaba.cloud</groupId>
81
				<artifactId>spring-cloud-alibaba-dependencies</artifactId>
82
				<version>${org.springframework.boot}</version>
83
				<type>pom</type>
84
				<scope>import</scope>
85
			</dependency>
71 86
		</dependencies>
72 87
	</dependencyManagement>
73 88
@ -117,14 +132,34 @@
117 132
		    <artifactId>guava</artifactId>
118 133
		    <version>${google.plugin}</version>
119 134
		</dependency>
135
		<dependency>
136
			<groupId>mysql</groupId>
137
			<artifactId>mysql-connector-java</artifactId>
138
			<version>8.0.17</version>
139
		</dependency>
140
		<!-- nacos -->
141
		<dependency>
142
			<groupId>com.alibaba.cloud</groupId>
143
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
144
		</dependency>
145
		<dependency>
146
			<groupId>com.alibaba.cloud</groupId>
147
			<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
148
		</dependency>
120 149
	</dependencies>
121 150
122 151
	<build>
123
        <directory>${project.basedir}/docker/target</directory>
152
        <directory>${dockerDirectory}/target</directory>
124 153
        <plugins>
125 154
			<plugin>
126 155
				<groupId>org.springframework.boot</groupId>
127 156
				<artifactId>spring-boot-maven-plugin</artifactId>
157
				<version>2.4.5</version>
158
				    <configuration>
159
                        <image>
160
                            <name>megale/${project.artifactId}:${project.version}</name>
161
                        </image>
162
                     </configuration>			
128 163
			</plugin>
129 164
			<!-- 添加docker镜像功能 -->
130 165
			<plugin>

+ 2 - 0
ipu-rest-demo/readme.md

@ -1,5 +1,7 @@
1 1
一、启动服务脚本范例:java -Dipu.lic.path=D:/git/rest-guide/ipu-rest-demo/ipu.lic -jar target/ipu-rest-demo.jar  --server.port=8080
2 2
注意事项:需要增加证书。参数格式[-Dipu.lic.path]
3
由于增加了dubbo的consumer代码,需要事先启动dubbo的provider服务后再启动ipu-rest-demo。
4

3 5
二、区分context-path、servlet-path、static-path,正确配置拦截器的exclude-mapping
4 6

5 7
三、待办事项

+ 106 - 0
ipu-rest-demo/src/main/java/com/ai/ipu/server/demo/config/NacosConfig.java

@ -0,0 +1,106 @@
1
package com.ai.ipu.server.demo.config;
2
3
4
import java.util.Properties;
5
import java.util.concurrent.Executor;
6
7
import javax.annotation.PostConstruct;
8
9
import org.springframework.beans.factory.annotation.Value;
10
import org.springframework.context.annotation.Bean;
11
import org.springframework.stereotype.Component;
12
13
import com.ai.ipu.basic.string.StringUtil;
14
import com.alibaba.nacos.api.NacosFactory;
15
import com.alibaba.nacos.api.PropertyKeyConst;
16
import com.alibaba.nacos.api.config.ConfigService;
17
import com.alibaba.nacos.api.config.listener.Listener;
18
import com.alibaba.nacos.api.exception.NacosException;
19
20
21
import lombok.extern.slf4j.Slf4j;
22
23
//springcloud也支持在程序中手工注册到配置中心,此时就可以监听到配置中心推送的配置文件。
24
//springcloud已经不再支持@NacosConfigListener,配置了也不生效。
25
@Component
26
@Slf4j
27
public class NacosConfig {
28
	private String service002Url;
29
	private String service002Param;
30
	
31
	@Bean(name="getService002Url")
32
	public String getService002Url() {
33
		return service002Url;
34
	}
35
	
36
	@Bean(name="getService002Param")
37
	public String getService002Param() {
38
		return service002Param;
39
	}
40
	
41
	
42
	@Value("${spring.cloud.nacos.config.server-addr}")
43
    private String nacosConfigServer;
44
	@Value("${spring.cloud.nacos.namespace}")
45
    private String nacosNamespace;
46
	
47
	@Value("${spring.cloud.nacos.dataid}")
48
    private String dataId;
49
	@Value("${spring.cloud.nacos.group}")
50
    private String group;
51
	@Value("${spring.cloud.nacos.timeout}")
52
    private long timeout;
53
	
54
	@PostConstruct
55
	public void initConfigServer() {
56
		try {
57
	        Properties properties = new Properties();
58
	        if (!StringUtil.isEmpty(nacosNamespace))
59
	        	properties.put(PropertyKeyConst.NAMESPACE, nacosNamespace);
60
	        properties.put(PropertyKeyConst.SERVER_ADDR, nacosConfigServer);
61
	        ConfigService configService = NacosFactory.createConfigService(properties);
62
	        String content = configService.getConfig(dataId, group, timeout);
63
	        //从配置中心获取到指定配置,需要自己解析后给service002Url、service002Param赋值
64
	        log.debug(content);
65
	        dealConfigServerConfig(content);
66
	        configService.addListener(dataId, group, new Listener() {
67
	            @Override
68
	            public void receiveConfigInfo(String configInfo) {
69
	            	//从配置中心获取到推送来的更新配置信息,需要自己解析给service002Url、service002Param赋值
70
	            	log.debug(configInfo);
71
	            	dealConfigServerConfig(configInfo);
72
	            }
73
	
74
	            @Override
75
	            public Executor getExecutor() {
76
	                return null;
77
	            }
78
	        });
79
	    } catch (NacosException e) {
80
	        log.error(e.getMessage());
81
	    }
82
	}
83
	
84
	private void dealConfigServerConfig(String configInfo) {
85
		if (StringUtil.isEmpty(configInfo))
86
			return;
87
		String[] configs = configInfo.split("\n\r|\n|\r|\r\n");
88
		int i=0;
89
		for (;i<configs.length;i++) {
90
			if (!StringUtil.isEmpty(configs[i]))
91
			{
92
				if (configs[i].indexOf("service002Url")>=0)
93
				{
94
					String[] urls = configs[i].split("=");
95
					service002Url = urls[1];
96
				}
97
				if (configs[i].indexOf("service002Param")>=0)
98
				{
99
					String[] params = configs[i].split("=");
100
					service002Param = params[1];
101
				}
102
			}
103
		}
104
	}
105
	
106
}

+ 17 - 0
ipu-rest-demo/src/main/java/com/ai/ipu/server/demo/config/RestConsumerConfiguration.java

@ -0,0 +1,17 @@
1
package com.ai.ipu.server.demo.config;
2
3
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
4
import org.springframework.context.annotation.Bean;
5
import org.springframework.context.annotation.Configuration;
6
import org.springframework.web.client.RestTemplate;
7
8
9
@Configuration
10
public class RestConsumerConfiguration {
11
12
	@LoadBalanced
13
    @Bean
14
    public RestTemplate ipuRestTemplate() {
15
        return new RestTemplate();
16
    }
17
}

+ 2 - 2
ipu-rest-demo/src/main/java/com/ai/ipu/server/demo/control/cache/RedisController.java

@ -68,7 +68,7 @@ public class RedisController {
68 68
			LOGGER.debug(result.getString("result"));				
69 69
		} catch (Exception e)
70 70
		{
71
			String errorMsg = "从redis中获取" + key + "错误:" + e.getMessage();
71
			String errorMsg = "从redis中获取" + key + "错误:" + e.toString();
72 72
			LOGGER.error(errorMsg);
73 73
			result.put("result", errorMsg);
74 74
		}finally {
@ -94,7 +94,7 @@ public class RedisController {
94 94
			LOGGER.debug(result.getString("result"));		
95 95
		} catch (Exception e)
96 96
		{
97
			String errorMsg = "从redis中获取" + key + "错误:" + e.getMessage();
97
			String errorMsg = "从redis中获取" + key + "错误:" + e.toString();
98 98
			LOGGER.error(errorMsg);
99 99
			result.put("result", errorMsg);
100 100
		}finally {

+ 37 - 5
ipu-rest-demo/src/main/java/com/ai/ipu/server/demo/control/db/DbTableController.java

@ -7,6 +7,9 @@ import org.springframework.stereotype.Controller;
7 7
import org.springframework.web.bind.annotation.RequestMapping;
8 8
import org.springframework.web.bind.annotation.ResponseBody;
9 9

10
import com.ai.ipu.basic.log.ILogger;
11
import com.ai.ipu.basic.log.IpuLoggerFactory;
12
import com.ai.ipu.basic.util.IpuUtility;
10 13
import com.ai.ipu.common.date.TimeUtil;
11 14
import com.ai.ipu.data.JMap;
12 15
import com.ai.ipu.data.impl.JsonMap;
@ -24,6 +27,7 @@ import com.ailk.common.data.IData;
24 27
@Controller
25 28
@RequestMapping("/db/table")
26 29
public class DbTableController {
30
	private static final transient ILogger LOGGER = IpuLoggerFactory.createLogger(DbTableController.class);
27 31
    private String connName = "test";
28 32
    private String druidConnName = "test_druid";
29 33
    private String tableName = "ipu_db_demo";
@ -37,8 +41,10 @@ public class DbTableController {
37 41
    @RequestMapping("/select")
38 42
    public JMap select(JMap param) throws Exception {
39 43
        CommonTableDao dao = IpuDaoManager.takeDao(CommonTableDao.class, connName);
44
        int pk = param.getInt("pk", 0);
45
        LOGGER.info("select pk is:" + pk);
40 46
        JMap data = new JsonMap();
41
        data.put("pk", 0);
47
        data.put("pk", pk);
42 48
        Map<String, Object> re = dao.select(tableName, data);
43 49
        JMap result = new JsonMap();
44 50
        result.put("result", re);
@ -72,7 +78,7 @@ public class DbTableController {
72 78
    public JMap insert(JMap param) throws Exception {
73 79
        BizSqlDao bizDao = IpuDaoManager.takeDao(BizSqlDao.class, connName);
74 80
        int pk = bizDao.takePK();
75
        
81
        LOGGER.info("insert pk is:" + pk);
76 82
        CommonTableDao dao = IpuDaoManager.takeDao(CommonTableDao.class, connName);
77 83
        JMap data = new JsonMap();
78 84
        data.put("pk", pk);
@ -141,11 +147,11 @@ public class DbTableController {
141 147
    @RequestMapping("/delete")
142 148
    public JMap delete(JMap params) throws Exception {
143 149
        BizSqlDao bizDao = IpuDaoManager.takeDao(BizSqlDao.class, connName);
144
        int pk = bizDao.takePK();
145
        
150
        int pk = params.getInt("pk", bizDao.takePK()-1);
151
        LOGGER.info("delete pk is:" + pk);
146 152
        CommonTableDao dao = IpuDaoManager.takeDao(CommonTableDao.class, connName);
147 153
        JMap data = new JsonMap();
148
        data.put("pk", pk-1);
154
        data.put("pk", pk);
149 155
        
150 156
        Map<String, Object> content = dao.select(tableName, data);
151 157
        int re = dao.delete(tableName, data);
@ -196,4 +202,30 @@ public class DbTableController {
196 202
        result.put("result", re);
197 203
        return result;
198 204
    }
205
    
206
    @ResponseBody
207
    @RequestMapping("/rollback")
208
    public JMap rollback(JMap param) throws Exception {
209
        BizSqlDao bizDao = IpuDaoManager.takeDao(BizSqlDao.class, connName);
210
        int pk = bizDao.takePK();
211
        LOGGER.info("insert pk is:" + pk);
212
        CommonTableDao dao = IpuDaoManager.takeDao(CommonTableDao.class, connName);
213
        JMap data = new JsonMap();
214
        data.put("pk", pk);
215
        data.put("string_type", "字符串"+pk);
216
        data.put("int_type", pk);
217
        data.put("decimal_type", "10."+pk);
218
        data.put("date_type", TimeUtil.getSysDate());
219
        data.put("datetime_type", TimeUtil.getSysTime());
220
        int re = dao.insert(tableName, data);
221
        
222
        IpuUtility.error("rollback test");
223
        
224
        JMap conds = new JsonMap();
225
        conds.put("pk", pk);
226
        JMap result = new JsonMap();
227
        result.put("result_number", re);
228
        result.put("content", dao.select(tableName, conds));
229
        return result;
230
    }
199 231
}

+ 30 - 8
ipu-rest-demo/src/main/java/com/ai/ipu/server/demo/control/dubbo/DubboControl.java

@ -5,10 +5,13 @@ import org.springframework.stereotype.Controller;
5 5
import org.springframework.web.bind.annotation.RequestMapping;
6 6
import org.springframework.web.bind.annotation.ResponseBody;
7 7

8
import com.ai.ipu.basic.log.ILogger;
9
import com.ai.ipu.basic.log.IpuLoggerFactory;
8 10
import com.ai.ipu.basic.reflect.ReflectUtil;
9 11
import com.ai.ipu.basic.util.IpuUtility;
10
import com.ai.ipu.data.JMap;
11 12
import com.ai.ipu.test.springboot.service.IBizService;
13
import com.ai.ipu.test.springboot.service.IpuService;
14
import com.ailk.common.data.IData;
12 15

13 16
/**
14 17
 * @author huangbo@asiainfo.com
@ -18,10 +21,29 @@ import com.ai.ipu.test.springboot.service.IBizService;
18 21
 */
19 22
@Controller
20 23
@RequestMapping("/dubbo")
21
public class DubboControl {
24
public class DubboConsumerController {
25
	private static final transient ILogger logger = IpuLoggerFactory.createLogger(DubboConsumerController.class);
26
	
22 27
	@Reference
23 28
	IBizService bizService;
24 29
	
30
	@Reference
31
    IpuService ipuService;
32
    
33
	@ResponseBody
34
    @RequestMapping("/index")
35
    public String index(String data) {
36
        logger.info("I am ConsumerController" + System.getProperty("user.home"));
37
        if(data==null||"".equals(data)){
38
            data="你啥都没有输入!";
39
        }
40

41
        logger.info("你输入的是"+data);
42

43
        ipuService.genaratePlumelog(data);
44
        logger.info("调用dubbo结束...........");
45
        return data;
46
    }
25 47
    /**
26 48
     * @author huangbo@asiainfo.com
27 49
     * @title: callBizService
@ -29,9 +51,9 @@ public class DubboControl {
29 51
     */
30 52
    @ResponseBody
31 53
    @RequestMapping("/biz")
32
    public JMap callBizService(JMap params) {
54
    public IData callBizService(IData params) {
33 55
//        IBizService bizService = (IBizService)SpringManager.takeSpringContext().getBean("bizService"); // 获取远程服务代理
34
    	JMap result = bizService.queryUserInfo(params); // 执行远程方法
56
    	IData result = bizService.queryUserInfo(params); // 执行远程方法
35 57
        result.put("rest_result", "测试biz类型服务调用");
36 58
        return result;
37 59
    }
@ -43,17 +65,17 @@ public class DubboControl {
43 65
     */
44 66
    @ResponseBody
45 67
    @RequestMapping("/common")
46
    public JMap callCommonService(JMap params) {
68
    public IData callCommonService(IData params) {
47 69
//        String serviceName = params.getString("service_name");
48 70
        String methodName = params.getString("method_name");
49 71
//        Object service = SpringManager.takeSpringContext().getBean(serviceName);
50
        JMap result = null;
72
        IData result = null;
51 73
        try {
52
            result = (JMap)ReflectUtil.invokeMethod(bizService, methodName, new Object[]{params}, new Class<?>[]{JMap.class});
74
            result =(IData) ReflectUtil.invokeMethod(bizService, methodName, new Object[]{params}, new Class<?>[]{IData.class});
53 75
            result.put("rest_result", "测试common类型服务调用");
54 76
        }catch (Exception e) {
55 77
            // TODO Auto-generated catch block
56
            IpuUtility.error( methodName + "方法调用异常:" + e.getMessage());
78
            IpuUtility.error( methodName + "方法调用异常:" + e.toString());
57 79
        }
58 80
        return result;
59 81
    }

+ 6 - 6
ipu-rest-demo/src/main/java/com/ai/ipu/server/demo/control/nacos/NacosController.java

@ -45,8 +45,8 @@ import com.github.pagehelper.util.StringUtil;
45 45
 */
46 46
@Controller
47 47
@RequestMapping("/nacos/")
48
public class NacosController {
49
	private static final ILogger LOGGER = IpuLoggerFactory.createLogger(NacosController.class);
48
public class IpuSpringNacosController {
49
	private static final ILogger LOGGER = IpuLoggerFactory.createLogger(IpuSpringNacosController.class);
50 50
	
51 51
	@Autowired
52 52
	private IpuNacosServiceImpl service;
@ -85,7 +85,7 @@ public class NacosController {
85 85
	
86 86
		} catch (Exception e)
87 87
		{
88
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuCacheDataid() + "错误:" + e.getMessage();
88
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuCacheDataid() + "错误:" + e.toString();
89 89
			LOGGER.error(errorMsg);
90 90
			result.put("result", errorMsg);
91 91
		}finally {
@ -145,7 +145,7 @@ public class NacosController {
145 145
		{
146 146
			if (noSql != null)
147 147
				noSql.abortTransaction();
148
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuNosqlDataid() + "错误:" + e.getMessage();
148
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuNosqlDataid() + "错误:" + e.toString();
149 149
			LOGGER.error(errorMsg);
150 150
			result.put("result", errorMsg);
151 151
		}finally {
@ -220,7 +220,7 @@ public class NacosController {
220 220
	
221 221
		} catch (Exception e)
222 222
		{
223
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuDfsDataid() + "错误:" + e.getMessage();
223
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuDfsDataid() + "错误:" + e.toString();
224 224
			LOGGER.error(errorMsg);
225 225
			result.put("result", errorMsg);
226 226
		}finally {
@ -278,7 +278,7 @@ public class NacosController {
278 278
	
279 279
		} catch (Exception e)
280 280
		{
281
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuDatabaseDataid() + "错误:" + e.getMessage();
281
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuDatabaseDataid() + "错误:" + e.toString();
282 282
			LOGGER.error(errorMsg);
283 283
			result.put("result", errorMsg);
284 284
		}finally {

+ 53 - 0
ipu-rest-demo/src/main/java/com/ai/ipu/server/demo/control/nacos/SpringCloudConsumerController.java

@ -0,0 +1,53 @@
1
package com.ai.ipu.server.demo.control.nacos;
2
3
import java.util.Map;
4
5
6
import org.slf4j.Logger;
7
import org.slf4j.LoggerFactory;
8
import org.springframework.beans.factory.annotation.Autowired;
9
import org.springframework.beans.factory.annotation.Value;
10
import org.springframework.cloud.context.config.annotation.RefreshScope;
11
import org.springframework.web.bind.annotation.GetMapping;
12
import org.springframework.web.bind.annotation.RequestMapping;
13
import org.springframework.web.bind.annotation.ResponseBody;
14
import org.springframework.web.bind.annotation.RestController;
15
import org.springframework.web.client.RestTemplate;
16
17
import com.ai.ipu.server.demo.config.NacosConfig;
18
import com.alibaba.nacos.api.exception.NacosException;
19
import com.google.common.collect.Maps;
20
21
22
@RestController
23
@RefreshScope
24
@RequestMapping("/nacos/discovery/restConsumer")
25
public class SpringCloudConsumerController {
26
	private static final Logger logger = LoggerFactory.getLogger(SpringCloudConsumerController.class);
27
28
    @Autowired
29
    private RestTemplate restTemplate;
30
31
    
32
    @Value("${spring.application.name}")
33
    private String appName;
34
    
35
    @Autowired
36
	NacosConfig config;
37
    
38
	@ResponseBody
39
    @GetMapping(value = "/service002")
40
    public String service002() throws NacosException {
41
		
42
		try {
43
			/*用于ipu-spring-plumlog
44
			Map<String, Object> variables = Maps.newHashMap();
45
			variables.put("message", appName);*/
46
			return restTemplate.getForObject("http://ipu-nacos-cloud-provider" + config.getService002Url() + "?message=" + appName , String.class);
47
		} catch (Exception e) {
48
			logger.error(e.getMessage());
49
		}
50
		
51
        return null;
52
    }
53
}

+ 0 - 33
ipu-rest-demo/src/main/java/com/ai/ipu/service/demo/IBizService.java

@ -1,33 +0,0 @@
1
package com.ai.ipu.service.demo;
2

3
import com.ailk.common.data.IData;
4

5
/**
6
 * @author huangbo@asiainfo.com
7
 * @team IPU
8
 * @date 2018年10月23日下午7:25:11
9
 * @desc 业务服务调用案例
10
 */
11
public interface IBizService {
12
    
13
    /**
14
     * @author huangbo@asiainfo.com
15
     * @title: queryUserInfo
16
     * @desc: 查询用户信息
17
     */
18
    public IData queryUserInfo(IData param);
19
    
20
    /**
21
     * @author huangbo@asiainfo.com
22
     * @title: queryUserInfo
23
     * @desc: 查询用户列表
24
     */
25
    public IData queryUserList(IData param);
26
    
27
    /**
28
     * @author huangbo@asiainfo.com
29
     * @title: triggerException
30
     * @desc: 触发业务异常
31
     */
32
    public IData triggerException(IData param);
33
}

+ 8 - 3
ipu-rest-demo/src/main/java/com/ipu/server/bean/LoginBean.java

@ -2,6 +2,8 @@ package com.ipu.server.bean;
2 2

3 3
import java.awt.image.BufferedImage;
4 4

5
import com.ai.ipu.basic.log.ILogger;
6
import com.ai.ipu.basic.log.IpuLoggerFactory;
5 7
import com.ai.ipu.server.util.MobileUtility;
6 8
import com.ailk.common.data.IData;
7 9
import com.ailk.common.data.impl.DataMap;
@ -13,12 +15,14 @@ import com.ipu.server.util.Constant;
13 15
import com.ipu.server.util.ImageVerify;
14 16

15 17
public class LoginBean extends IpuAppBean {
18
	private static final ILogger LOGGER = IpuLoggerFactory.createLogger(LoginBean.class);
16 19
	
17 20
	/**
18 21
	 * 初始化登陆页面,获取验证码
19 22
	 */
20 23
	public IData init(IData prama) throws Exception {
21 24
		String verifyCode = ImageVerify.getVerifyCode(6, 2);
25
		
22 26
		BufferedImage image = ImageVerify.getImageVerify(verifyCode);
23 27
		String imageVerifyCode = ImageVerify.getImageBase64(image);
24 28

@ -30,6 +34,7 @@ public class LoginBean extends IpuAppBean {
30 34
		IData resultData = new DataMap();
31 35
		resultData.put("VERIFY_IMG", imageVerifyCode);
32 36
		resultData.put(Constant.Session.SESSION_ID, sessionId);
37
		resultData.put("VARIFY_CODE", verifyCode);
33 38
		return resultData;
34 39
	}
35 40

@ -40,7 +45,7 @@ public class LoginBean extends IpuAppBean {
40 45
		String verifyCode = ImageVerify.getVerifyCode(6, 2);
41 46
		BufferedImage image = ImageVerify.getImageVerify(verifyCode);
42 47
		String imageVerifyCode = ImageVerify.getImageBase64(image);
43
		getContextData().setVerifyCode(verifyCode.toUpperCase());
48
//		getContextData().setVerifyCode(verifyCode.toUpperCase());
44 49
		IData resultData = new DataMap();
45 50
		resultData.put("VERIFY_IMG", imageVerifyCode);
46 51
		return resultData;
@ -51,7 +56,7 @@ public class LoginBean extends IpuAppBean {
51 56
	 */
52 57
	public IData doLogin(IData param) throws Exception {
53 58
		/* 校验验证码 */
54
		String verifyCode = getContextData().getVerifyCode();
59
		String verifyCode = (String)getContextData().getMapData().get("VERIFY_CODE");
55 60
		String clientVerifyCode = param.getString("VARIFY_CODE");
56 61
		if (clientVerifyCode == null) {
57 62
			MobileUtility.error("验证码忘记填写了,重新输入验证码~");
@ -66,7 +71,7 @@ public class LoginBean extends IpuAppBean {
66 71
		IData resultData = new DataMap();
67 72
		boolean isLoginSuccess = true;
68 73
		if (isLoginSuccess) {
69
			getContextData().setUserName(userName);
74
			getContextData().getMapData().put("USER_NAME", userName);
70 75
			resultData.put("LOGIN_SUCCESS", true);
71 76
		} else {
72 77
			resultData.put("LOGIN_SUCCESS", false);

+ 4 - 4
ipu-rest-demo/src/main/java/com/ipu/server/core/bean/IpuAppBean.java

@ -1,11 +1,11 @@
1 1
package com.ipu.server.core.bean;
2 2

3 3
import com.ai.ipu.server.frame.bean.AbstractBean;
4
import com.ipu.server.core.context.IpuContextData;
4
import com.ai.ipu.server.frame.context.impl.DefaultJsonContextData;
5 5

6 6
public class IpuAppBean extends AbstractBean {
7
	@Override
8
	protected IpuContextData getContextData() throws Exception {
9
		return (IpuContextData)(getContext().getContextData());
7

8
	protected DefaultJsonContextData getContextData() throws Exception {
9
		return (DefaultJsonContextData) getContext().getContextData();
10 10
	}
11 11
}

+ 2 - 1
ipu-rest-demo/src/main/java/com/ipu/server/core/context/IpuContextData.java

@ -1,9 +1,10 @@
1 1
package com.ipu.server.core.context;
2 2

3 3
import com.ai.ipu.server.frame.context.impl.DefaultContextData;
4
import com.ai.ipu.server.frame.context.impl.DefaultJsonContextData;
4 5

5 6
@SuppressWarnings("serial")
6
public class IpuContextData extends DefaultContextData {
7
public class IpuContextData extends DefaultJsonContextData {
7 8
	public IpuContextData() {
8 9
	}
9 10


+ 2 - 3
ipu-rest-demo/src/main/java/com/ipu/server/core/session/IpuSessionManager.java

@ -4,8 +4,7 @@ import com.ai.ipu.server.frame.context.IContextData;
4 4
import com.ai.ipu.server.frame.session.impl.AbstractSessionManager;
5 5
import com.ai.ipu.server.util.MobileUtility;
6 6
import com.ailk.common.data.IData;
7
import com.ipu.server.core.context.IpuContextData;
8

7
import com.ai.ipu.server.frame.context.impl.DefaultJsonContextData;
9 8
public class IpuSessionManager extends AbstractSessionManager {
10 9

11 10
	/**
@ -14,7 +13,7 @@ public class IpuSessionManager extends AbstractSessionManager {
14 13
	@Override
15 14
	public void customVerify(String paramString, IData paramIData, IContextData paramIContextData) throws Exception {
16 15
		String userName = paramIData.getString("USER_NAME");
17
		String contextUserName = ((IpuContextData)paramIContextData).getUserName();
16
		String contextUserName = (String)((DefaultJsonContextData)paramIContextData).get("USER_NAME");
18 17
		if(userName == null || !userName.equals(contextUserName)){
19 18
			MobileUtility.error("非法操作,请重新登陆!", SESSION_ERROR_CODE);
20 19
		}

+ 12 - 6
ipu-rest-demo/src/main/resources/dev/application.properties

@ -49,12 +49,18 @@ management.security.enabled=false
49 49
#spring.devtools.restart.additional-paths=src/main/java
50 50
#spring.devtools.restart.exclude=WEB-INF/**
51 51

52

52
#使用zookeeper当注册中心
53 53
spring.main.allow-bean-definition-overriding=true
54
dubbo.application.name=dubbo_consumer
55
dubbo.protocol.name=dubbo
54
#dubbo.application.name=dubbo_consumer
55
#dubbo.protocol.name=dubbo
56 56
dubbo.protocol.port=-1
57 57
dubbo.consumer.check=false
58
dubbo.registry.check=false
59
dubbo.registry.address=zookeeper://47.105.160.21:2108
60
dubbo.registry.client=curator
58
#dubbo.registry.check=false
59
#dubbo.registry.address=zookeeper://47.105.160.21:2108
60
#dubbo.registry.client=curator
61

62
#使用nacos当注册中心
63
dubbo.application.name=dubbo_consumer
64
dubbo.registry.address=nacos://47.105.160.21:8849
65
dubbo.protocol.name=dubbo
66


+ 11 - 0
ipu-rest-demo/src/main/resources/dev/bootstrap.properties

@ -0,0 +1,11 @@
1
2
spring.cloud.nacos.config.server-addr=47.105.160.21:8849
3
spring.cloud.nacos.config.prefix=example
4
spring.cloud.nacos.config.file-extension=properties
5
spring.cloud.nacos.config.group=DEFAULT_GROUP
6
spring.cloud.nacos.dataid=example
7
spring.cloud.nacos.group=DEFAULT_GROUP
8
spring.cloud.nacos.timeout=10000
9
spring.cloud.nacos.namespace
10
spring.cloud.nacos.discovery.server-addr=47.105.160.21:8849
11

+ 7 - 1
ipu-rest-demo/src/main/resources/sql/com/ai/ipu/ipu-db-demo.xml

@ -7,7 +7,13 @@
7 7
		</select>
8 8
		]]>
9 9
	</sql>
10
	
10
	<sql name="delete">
11
		<![CDATA[
12
		<select id="delete" resultType="java.util.Map">
13
	        DELETE FROM  ipu_db_demo WHERE pk=#{pk}
14
		</select>
15
		]]>
16
	</sql>
11 17
	<sql name="insert">
12 18
		<![CDATA[
13 19
		<insert id="insert" resultType="java.util.Map">