2015年创业中遇到的技术问题:41-50

 41.Bootstrap换行。
col-md-10和col-md-2。
这2个div按说应该在一行的,结果col-md-2换行了。
看看样式,发现有多余的“margin-left: 1px;"。

42.Service实现类定义了一个“自动调度进行刷新”的方法。
@Override
@Scheduled(cron = "0 0/10 * * * ? ")
// 每10分钟一次
public void refreshBannerPhoto() {
bannerPhotoList = photoDao.find(searchBannerForm());
}
需要在接口类中,也定义一个方法。
 void refreshBannerPhoto();
 
要不然可能出现以下错误。
@Scheduled method 'refreshBannerPhoto' found on bean target class 'PhotoServiceImpl', 
but not found in any interface(s) for bean JDK proxy. Either pull the method up to an interface 
or switch to subclass (CGLIB) proxies by setting proxy-target-class/proxyTargetClass attribute to 'true'

43.Nginx和Tomcat配置疑惑。

需求:一个Tomcat下,部署2个项目。
2个项目使用不同的域名访问。
并且处于实际考虑,A项目必须部署在root下,从而解决图片等路径问题。
在Java中,项目名称是个很烦人的东西。

A项目
 server {
 37         listen 80;
 38         server_name fansunion.cn www.fansunion.cn blog.fansunion.cn;
 39       
 51        location / {
 52            proxy_pass    http://localhost:8080;
 53        }

B项目
  server{
 76        listen 80;
 77        server_name soft.fansunion.cn;
 78        location / {
 79            proxy_pass  http://localhost:8080/soft;
 80       }
 81
 82    }
 
 
 期望:访问  http://soft.fansunion.cn,访问 http://localhost:8080/soft这个项目。
 
 结果: http://localhost:8080/soft,访问的是 http://localhost:8080/根目录下的项目。
 
 
折衷处理,绕过去,把soft项目部署到另外一个Tomcat的根目录下,这个Tomcat监听9080等不同的端口。

问题:多一个Tomcat,多使用了100多M内存额。
 
 
44.使用JSONP解决跨域问题。
后端Java代码备份:
// 对外提供的服务接口,演示用jsonp解决跨域问题
// TODO jsoncallback是可选的,categoryid->categoryId
@RequestMapping(value = "recentpost")
public void recentPost(Integer categoryid, String jsoncallback,
Integer count, Model model, HttpServletResponse response) {
if (categoryid == null) {
categoryid = DEFAULT_CATEGORY;
}
List<Post> list = postService.listRecent(categoryid, count);
String str = JSONObject.toJSONString(list);
str = jsoncallback + "(" + str + ")";
super.returnMessage(response, str);
}

45.类型转换空指针异常。
   Integer ispage;
if (ispage == 1){
}
ispage是null。
这说明,Integer类型的ispage被转换成int,JDK内部转换时,报错。

46.KindEditor获得html和text内容。

方法一:editor.sync();
$("#content).val();

方法二:
html格式内容,editor.html();
文本格式内容,editor.text();

47.ActiveMq的启动。
启动ActiveMq
cd /activemq/bin

经常出现问题的启动方式: ./bin/activemq start
更好的方式:使用bin目录下的linux-x86-64目录下的activemq启动
./bin/linux-x86-64/activemq start

48.Spring注入属性的值到字段中。
@Value("${loginCookieName}")
private static final String loginCookieName = "cookieName";
a.properties
loginCookieName=abc

49.权限漏洞。
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**/*.html" />
<mvc:mapping path="/**/*.json" />
<mvc:exclude-mapping path="/login.html*"/>
<bean class="com.p2p.backend.interceptors.BackendLoginInterceptor">
<property name="loginUrl">
<value>${backendLoginUrl}</value>
</property>
</bean>
</mvc:interceptor>
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="com.p2p.base.interceptors.BackendPermissionInterceptor">
</bean>
</mvc:interceptor>
</mvc:interceptors>

重新看了下权限,发现有漏洞,我的火眼金睛不是瞎吹的。

访问post.json,没有登录,没有权限,按说返回false。
但是,post.json2,就绕过去了。

另外一个原因是,SpringMVC的DispatchServlet拦截的是“/*”所有,而不是只拦截/*.html和/*.json。

50.Freemarker的base问题。
实际后端响应的是  http://login.jiutianniao.com/login

静态资源的路径是:
${base}/static/

通过Nginx代理之后,${base}是 http://login.jiutianniao.com/login/static

访问报错了。

因为,通过Nginx访问的地址是 http://login.jiutianniao.com/static

这个地址映射到后端 http://login.jiutianniao.com/login/static

解决办法:base变量也做成可配置的。

静态资源的路径是:
${userDomain}/static/

String contextPath = request.getContextPath();
     model.put("base", contextPath);
总结:${base}在没有代理的情况下,很好。
有Nginx代理之后,目录访问会不正常。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值