gamecenter项目调试

1、配置host
   C:\WINDOWS\system32\drivers\etc
   127.0.0.1       localhost
   10.3.19.200 fuxi.xoa.renren.com

2、配置test类
   在test类 右键 Run as--Run configurations
   双击Java Application 会弹出 Test
   新测试类需进行以下操作:
   VM arguments下 -Dxoa.hosts.fuxi.xoa.renren.com=10.3.19.200:8388

3、先rebuild修改过的层

3、连接200

  sh /data/staging/tools/stage_wap.fuxi.xoa.sh 41801
  tail -100f /data/web_log/logs/useraccess.fuxi.xoa.2011-07-29.log
   tail -1000f /opt/xoa-fuxi-tomcat/logs/catalina.out
   tail -1000f /data/web_log/log/xoa-fuxi/wap_stdout.log
 
   拷贝logger.jsp文件
   cd /data/xoa/xoa-yoyo/ROOT/
   scp /data/xoa/xoa-yoyo/ROOT/logger.jsp [email protected]:/data/xoa/xoa-fuxi/ROOT/

   /opt/xoa-fuxi-tomcat/bin/shutdown.sh -force
   或者 ps aux|grep fuxi-tomcat
   kill 18358
   /opt/xoa-fuxi-tomcat/bin/startup.sh
   rm renren-wap-fuxi-service-1.0-SNAPSHOT.jar
   sh /data/staging/tools/stage_wap.fuxi.xoa.sh 41801

   页面脚本resin
   sh /data/staging/tools/stage_wap.fuxi.sh
   more /data/staging/tools/stage_wap.fuxi.sh

   tail -1000f /data/web_log/log/wap/fuxi/stdout.log

/opt/resin-fuxi/bin/httpd.sh start

4、在log4j.xml中
<appender name="stdout" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="/data/web_log/log/xoa-fuxi/catalina.out" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd-HH:mm:ss,SSS} %5p   - %m%n" />
</layout>
</appender>

   <!-- WAP Stdout -->
<appender name="wapStdoutFile" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="/data/web_log/log/xoa-fuxi/wap_stdout.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd-HH:mm:ss,SSS} %5p   - %m%n" />
</layout>
</appender>

<logger name="com.xiaonei.wap.framework" additivity="false">
<level value="error" />
<appender-ref ref="wapStdoutFile" />
</logger>

<logger name="com.xiaonei.wap" additivity="false">
<level value="error" />
<appender-ref ref="wapStdoutFile" />
</logger>

<logger name="com.renren.wap" additivity="false">
<level value="error" />
<appender-ref ref="wapStdoutFile" />
</logger>

<logger name="com.xiaonei.checkin" additivity="false">
<level value="error" />
<appender-ref ref="wapStdoutFile" />
</logger>

   tail -1000f /data/web_log/log/xoa-fuxi/catalina.out
   tail -1000f /data/web_log/log/xoa-fuxi/wap_stdout.log


6、rebuild文件 server下 rebuild文件
   rebuild.bat:
   set MAVEN_OPTS=-Dfile.encoding=utf-8
cd /d %~dp0
svn up
call mvn clean package -U deploy
pause

   rebuild.sh:
  #!/bin/sh
svn up
mvn clean
mvn package -U
mvn deploy





7、ServiceFactory  对Service接口进行封装的工厂
   public interface ServiceFactory {

public <T> T getService(Class<T> serviceInterface);

public <T> T getService(Class<T> serviceInterface, XoaClientI client);

   }

    ServiceFactories  {@link ServiceFactory}的工厂,以及封装相关工具方法。

public class ServiceFactories {

private static ServiceFactory defaultFactory = new DefaultServiceFactory();

/**
* @return 默认的ServiceFactory
*/
public static ServiceFactory getFactory() {
return defaultFactory;
}

}

  DefaultServiceFactory  {@link ServiceFactory}的默认实现

  public class DefaultServiceFactory implements ServiceFactory {

protected Log logger = LogFactory.getLog(this.getClass());

private Map<Class<?>, ServiceDefinition> xoaServices = new ConcurrentHashMap<Class<?>, ServiceDefinition>();

@SuppressWarnings("unchecked")
@Override
public <T> T getService(Class<T> serviceInterface, XoaClientI client) {

ServiceDefinition servicdDef = xoaServices.get(serviceInterface);

if (servicdDef == null) {
if (logger.isDebugEnabled()) {
logger.debug("Definition NOT found for " + serviceInterface.getName());
}
for (Annotation annotation : serviceInterface.getAnnotations()) {
if (annotation instanceof XoaService) {
XoaService xoaService = (XoaService)annotation;
servicdDef = new ServiceDefinition();
servicdDef.setServiceId(xoaService.serviceId());
//servicdDef.setHosts(xoaService.hosts());
xoaServices.put(serviceInterface, servicdDef);
break;
}
}
} else {
if (logger.isDebugEnabled()) {
if (logger.isDebugEnabled()) {
logger.debug("Definition found for " + serviceInterface.getName());
}
}
}

if (servicdDef == null) {
throw new IllegalArgumentException(serviceInterface + " must be annotated with " + XoaService.class);
}

ServiceInvocationHandler handler;
if (client == null) {
handler = new ServiceInvocationHandler(servicdDef);
} else {
handler = new ServiceInvocationHandler(servicdDef, client);
}

T proxy = (T)Proxy.newProxyInstance(
ClassUtils.getDefaultClassLoader(),
new Class<?>[]{serviceInterface}, handler);
return proxy;
}

@Override
public <T> T getService(Class<T> serviceInterface) {
return getService(serviceInterface, null);
}

}

ServiceDefinition  一个XOA service的定义
public class ServiceDefinition {

/**
* service id
*/
private String serviceId;

/**
* 可以指定本次调用的host列表,以ip:port的形式,
* 如果指定了hosts,那么registry中的配置会被覆盖
*/
//private String[] hosts;

public String getServiceId() {
return serviceId;
}

public void setServiceId(String serviceId) {
this.serviceId = serviceId;
}

/*public String[] getHosts() {
return hosts;
}

public void setHosts(String[] hosts) {
this.hosts = hosts;
}*/
}

在类中获取一个bean,则
ServiceFactory fact = ServiceFactories.getFactory();
gameCententerService = fact.getService(GameCenterService.class);


ServiceFuture  封装一次异步调用的返回信息

获取{@link ServiceFuture}实例后,其所对应的XOA请求并没有提交出去,在提交之前,还是可以添加header和param的,而调用此方法后,请求才会真正提交出去。
ServiceFuture<T> submit();

Waits for this future to be completed within the specified time limit.
boolean await(long timeoutMillis) throws InterruptedException;

Returns {@code true} if and only if the I/O operation was completed successfully.
boolean isSuccess();

获取返回的内容,如果调用尚未成功返回,或者有错误的返回,那么会抛出{@link IllegalStateException},所以调用此方法前应该先调用isSuccess方法来判断当前返回状态
T getContent();

Java 泛型
? 表示不确定的java类型。
T 表示java类型。
K V 分别代表java键值中的Key Value。
E 代表Element。

8、打包发布
SecureFX 10.3.19.200
/data/xoa/xoa-fuxi/ROOT/WEB-INF/lib
export--jar file--renren-wap-fuxi-xoa-server--src/main/java

6、更改sevice的版本
   cd /data/xoa/xoa-fuxi/ROOT/WEB-INF/lib
   pwd
   目前下面有三个版本
   renren-wap-fuxi-model-1.0-SNAPSHOT.jar
   renren-wap-fuxi-service-1.0-20110712.062725-6.jar
   renren-wap-fuxi-server.jar

   服务器位于opt/xoa-fuxi-tomcat

5、查看log:
   http://fuxi.xoa.renren.com:8380/logger.jsp
   查找
   com.xiaonei.wap.fuxi.service.impl.AppPageServiceImpl [DEGUG]
   可以选择log level

   tail -100f /data/web_log/logs/useraccess.fuxi.xoa.2011-07-25.log
   tail -1000f /opt/xoa-fuxi-tomcat/logs/catalina.out
   tail -1000f /data/web_log/log/xoa-fuxi/wap_stdout.log
 
   拷贝logger.jsp文件
   cd /data/xoa/xoa-yoyo/ROOT/
   scp logger.jsp [email protected]:/data/xoa/xoa-fuxi/ROOT/

9、linux 登录
   如:Quick Connect
   SSH2  10.3.19.157  root  GSSAPI--Properties--GSSAPI

3、连接200
   /opt/xoa-fuxi-tomcat/bin/shutdown.sh -force
   或者 ps aux|grep fuxi-tomcat
   kill 18358
   /opt/xoa-fuxi-tomcat/bin/startup.sh
   rm renren-wap-fuxi-service-1.0-SNAPSHOT.jar
  
   通过脚本重启tomcat
   sh /data/staging/tools/stage_wap.fuxi.xoa.sh 41801
   /data/staging/tools/stage_wap.fuxi.xoa.sh 脚本需要看一下
  
   页面脚本resin
   sh /data/staging/tools/stage_wap.fuxi.sh
   more /data/staging/tools/stage_wap.fuxi.sh

   tail -1000f /data/web_log/log/wap/fuxi/stdout.log

Date d = userLoginLog.getLoginTime();
        if (d == null) {
            d = new Date();
        }
        Timestamp t = new Timestamp(d.getTime());

9、
com.renren.xoa.ServiceNotFoundException: fuxi.xoa.renren.com
未配置 -Dxoa.hosts.fuxi.xoa.renren.com=10.3.19.200:8388

No healthy communication client available 服务器未启动


{"name":"图片1", "url":"http://www.renren.com/testiphone1.html"},
{"name":"图片2", "url":"http://www.renren.com/testiphone2.html"},
{"name":"图片3", "url":"http://www.renren.com/testiphone3.html"}

10、注意要配置applicationContext-service.xml中配置
Java代码
<bean id="userAccessService" class="com.xiaonei.wap.fuxi.service.impl.UserAccessServiceImpl" /> 

---------------------------------------
Linux下调试
  969  tail -1000f /opt/xoa-fuxi-tomcat/logs/catalina.out
  970  cd ..
  971  ls
  972  cd opt
  973  ls
  974  /opt/xoa-fuxi-tomcat/bin/shutdown.sh -force
  975  ps aux|grep fuxi-tomcat
  976  kill 19348
  977  ps aux|grep fuxi-tomcat
  978  tail -1000f /opt/xoa-fuxi-tomcat/logs/catalina.out
  979  tail -1000f /opt/xoa-fuxi-tomcat/logs/catalina.out
  980  /opt/xoa-fuxi-tomcat/bin/shutdown.sh -force
  981  /opt/xoa-fuxi-tomcat/bin/shutdown.sh -force
  982  ps aux|grep fuxi-tomcat
  983  /opt/xoa-fuxi-tomcat/bin/startup.sh
  984  tail -100f /data/web_log/logs/useraccess.fuxi.xoa.2011-07-22.log
  985  tail -1000f /opt/xoa-fuxi-tomcat/logs/catalina.out
  986  tail -1000f /opt/xoa-fuxi-tomcat/logs/catalina.out
  987  tail -1000f /data/web_log/log/xoa-fuxi/wap_stdout.log
  988  tail -1000f /opt/xoa-fuxi-tomcat/logs/catalina.out
  989  cd /opt/xoa-fuxi-tomcat/
  990  ls
  991  cd conf/
  992  ls
  993  cat|less server.xml
  994  sh /data/staging/tools/stage_wap.fuxi.xoa.sh 42826
  995  sh /data/staging/tools/stage_wap.fuxi.xoa.sh 42826
  996  sh /data/staging/tools/stage_wap.fuxi.xoa.sh 42826
  997  /opt/xoa-fuxi-tomcat/bin/shutdown.sh -force
  998  ps aux|grep fuxi-tomcat
  999  sh /data/staging/tools/stage_wap.fuxi.xoa.sh 42826
1000  tail -100f /data/web_log/logs/useraccess.fuxi.xoa.2011-07-22.log
1001  cd /opt/
1002  ll
1003  cd xoa-fuxi-tomcat
1004  ll
1005  cd conf/
1006  ll
1007  vim server.xml
1008  ll
1009  cd ..
1010  ll
1011  ps -ef|grep xoa-f
1012  tail -f /opt/xoa-fuxi-tomcat/logs/catalina.out
1013  tail -200f /opt/xoa-fuxi-tomcat/logs/catalina.out
1014  less /opt/xoa-fuxi-tomcat/logs/catalina.out
1015  rm -f /opt/xoa-fuxi-tomcat/logs/catalina.out
1016  rm -f /opt/xoa-fuxi-tomcat/logs/*
1017  ps -ef|grep xoa-f
1018  kill -9 21885
1019  ps -ef|grep xoa-f
1020  cd conf/
1021  ll
1022  vim server.xml
1023  ll /data/xoa/xoa-fuxi
1024  /opt/xoa-fuxi-tomcat/bin/startup.sh
1025  rm -f /opt/xoa-fuxi-tomcat/PID
1026  /opt/xoa-fuxi-tomcat/bin/startup.sh
1027  tail -f /opt/xoa-fuxi-tomcat/logs/catalina.out
1028  cd /data/staging/tools
1029  sh stage_wap.fuxi.xoa.sh 42903
1030  tail -f /opt/xoa-fuxi-tomcat/logs/catalina.out
1031  less /opt/xoa-fuxi-tomcat/logs/catalina.out
1032  netstat -nal |grep 8380
1033  netstat -nl |grep 8380
1034  netstat -p |grep 8380
1035  vim /opt/xoa-fuxi-tomcat/conf/server.xml
1036  ll
1037  ps -ef|grep xoa-f
1038  /opt/xoa-fuxi-tomcat/bin/shutdown.sh -force
1039  rm -f /opt/xoa-fuxi-tomcat/logs/catalina.
1040  rm -f /opt/xoa-fuxi-tomcat/logs/catalina.out
1041  /opt/xoa-fuxi-tomcat/bin/startup.sh
1042  tail -f /opt/xoa-fuxi-tomcat/logs/catalina.out
1043  sz /data/xoa/xoa-fuxi/ROOT/WEB-INF/lib/renren-wap-fuxi-service-1.0-20110722.055045-97.jar
1044  less /opt/xoa-fuxi-tomcat/logs/catalina.out
1045  cd /root/
1046  ll
1047  mkdir ke.liao
1048  cd ke.liao/
1049  ll
1050  svn co http://svn.d.xiaonei.com/wap/renren/renren-wap-fuxi-service/trunk renren-wap-fuxi-service
1051  cd renren-wap-fuxi-service
1052  ll
1053  mvn package -U
1054  svn up
1055  mvn clean -package -U
1056  mvn clean package -U
1057  mvn deploy
1058  cd ..
1059  ll
1060  svn co http://svn.d.xiaonei.com/wap/renren/renren-wap-fuxi-model/trunk renren-wap-fuxi-model
1061  cd renren-wap-fuxi-model
1062  ll
1063  mvn clean package -U deploy
1064  cd ..
1065  ll
1066  cd renren-wap-fuxi-service
1067  cp target/renren-wap-fuxi-service-1.0-SNAPSHOT.jar /data/xoa/xoa-fuxi/ROOT/WEB-INF/lib/
1068  cd /data/xoa/xoa-fuxi/ROOT/WEB-INF/lib/
1069  ll |grep fuxi
1070  rm -f renren-wap-fuxi-service-1.0-20110722.055045-97.jar
1071  /opt/xoa-fuxi-tomcat/bin/shutdown.sh -force
1072  vim /opt/xoa-fuxi-tomcat/bin/catalina.sh
1073  /opt/xoa-fuxi-tomcat/bin/startup.sh
1074  tail -f /opt/xoa-fuxi-tomcat/logs/catalina.out
1075  history


各种异常:

java.io.IOException: Connection reset by peer
客户端关闭的错误

/opt/resin-fuxi/bin/httpd.sh 增加 FUXI_XOA参数
FUXI_XOA="-Dxoa.hosts.fuxi.xoa.renren.com=10.3.19.200:8388"
args="-Xms4000M -Xmx4000M -J-server -J-Xss128k -J-XX:ThreadStackSize=128 -XX:MaxPermSize=128M -J-verbosegc -J-XX:+PrintGCDet
ails -J-XX:+UseParallelGC -J-XX:+PrintGCTimeStamps $FUXI_XOA  -Djava.library.path=/opt/resin-fuxi/libexec:/opt/j2sdk/lib:/us
r/lib64 -Djmagick.systemclassloader=false"
-----------------------------------------------------

ifconfig 查看公网ip
--------------------------------------------

导入 配置文件
判断null 多用util
StringUtil
NumberUtil
CollectionUtil
注入主要注入接口

你可能感兴趣的:(game)