public static native int GetOPSVersion(char[] Version);
22

23
	public static native int GetCardSN(char[] CardSN);
24

25
	public static native int GetCardInfo(char[] CardInfo);
26

27
	public static native int WriteCard(char[] IssueData, char[] Result);
28

29
	public static native int GetOPSErrorMsg(int ErrorCode, char[] ErrorMsg);
30

31
	public static native int GetICCIDData(char[] ICCID);
32

33
}

+ 721 - 0
multiple-client/src/epsyl/phonecardwriter/funcjar/SimCardBuss.java

@ -0,0 +1,721 @@
1
package epsyl.phonecardwriter.funcjar;
2

3
import android.app.Activity;
4
import android.app.PendingIntent;
5
import android.content.BroadcastReceiver;
6
import android.content.Context;
7
import android.content.Intent;
8
import android.content.IntentFilter;
9
import android.hardware.usb.UsbDevice;
10
import android.hardware.usb.UsbManager;
11
import android.os.AsyncTask;
12
import android.util.Log;
13
import android.widget.Spinner;
14
import android.widget.Toast;
15

16
import com.android.smartcard.Reader;
17
import com.android.smartcard.Reader.OnStateChangeListener;
18

19
public class SimCardBuss {
20
	private static final String TAG = SimCardBuss.class.getSimpleName();
21
	public static UsbManager usbManager = null;
22
	public static Reader mReader;
23
	// private Context context;
24
	public static int isGetPermision = 0;
25
	public static int isOpenedCardReader = 0;
26
	public static int isCardIn = 0;
27
	public static Context activity = null;
28
	private int currentSlot = -1;
29
	private int currentState = -1;
30
	private int befor_prevState = -1;
31
	private PendingIntent mPermissionIntent;
32
	private static final String ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION";
33
	private static final String[] stateStrings = { "Unknown", "Absent",
34
			"Present", "Swallowed", "Powered", "Negotiable", "Specific" };
35
	public static String errmsg = "";
36

37
	public static void setContext(Context context) {
38
		SimCardBuss.activity = context;
39
	}
40

41
	public static void exit() {
42
//		usbManager = null;
43
//		mReader = null;			
44
	}
45

46
	public SimCardBuss() {
47
		// if (null == usbManager) {
48
		// if (null != activity) {
49
		// usbManager = (UsbManager) activity
50
		// .getSystemService(Context.USB_SERVICE);
51
		// } else {
52
		// Log.e(TAG, "context == null");
53
		// return;
54
		// }
55
		//
56
		// }
57
		//
58
		// // Initialize reader
59
		// if (null == mReader) {
60
		// mReader = new Reader(usbManager);
61
		// mReader.setOnStateChangeListener(new OnStateChangeListener() {
62
		//
63
		// public void onStateChange(int slotNum, int prevState,
64
		// int currState) {
65
		//
66
		// if (prevState < Reader.CARD_UNKNOWN
67
		// || prevState > Reader.CARD_SPECIFIC) {
68
		// prevState = Reader.CARD_UNKNOWN;
69
		// }
70
		//
71
		// if (currState < Reader.CARD_UNKNOWN
72
		// || currState > Reader.CARD_SPECIFIC) {
73
		// currState = Reader.CARD_UNKNOWN;
74
		// }
75
		//
76
		// // Create output string
77
		// String outputString = "Slot " + slotNum + ": "
78
		// + stateStrings[prevState] + " -> "
79
		// + stateStrings[currState];
80
		// currentSlot = slotNum;
81
		// currentState = currState;
82
		// befor_prevState = prevState;
83
		// // System.out.println("状态变化:outputString = " + outputString);
84
		// ((Activity) activity).runOnUiThread(new Runnable() {
85
		//
86
		// @Override
87
		// public void run() {
88
		// // TODO Auto-generated method stub
89
		// if (currentState == 1) {
90
		// // myEpSusbListener.onCardOut();
91
		// // System.out.println("卡片被拔出");
92
		// } else if (currentState == 2) {
93
		// // myEpSusbListener.onCardIn();
94
		// // System.out.println("卡片被插入");
95
		// }
96
		// }
97
		// });
98
		//
99
		// }
100
		// });
101
		// }
102
		// // Register receiver for USB permission
103
		// mPermissionIntent = PendingIntent.getBroadcast(activity, 0, new
104
		// Intent(
105
		// ACTION_USB_PERMISSION), 0);
106
		// IntentFilter filter = new IntentFilter();
107
		// filter.addAction(ACTION_USB_PERMISSION);
108
		// filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
109
		// activity.registerReceiver(mReceiver, filter);
110
	}
111

112
	public int openCardReader() throws Exception {
113
		// =============
114
		if (null == usbManager) {
115
			if (null != activity) {
116
				usbManager = (UsbManager) activity
117
						.getSystemService(Context.USB_SERVICE);
118
			} else {
119
				Log.e(TAG, "context == null");
120
			}
121

122
		}
123

124
		// Initialize reader
125
		if (null == mReader) {
126
			mReader = new Reader(usbManager);
127
			mReader.setOnStateChangeListener(new OnStateChangeListener() {
128

129
				public void onStateChange(int slotNum, int prevState,
130
						int currState) {
131

132
					if (prevState < Reader.CARD_UNKNOWN
133
							|| prevState > Reader.CARD_SPECIFIC) {
134
						prevState = Reader.CARD_UNKNOWN;
135
					}
136

137
					if (currState < Reader.CARD_UNKNOWN
138
							|| currState > Reader.CARD_SPECIFIC) {
139
						currState = Reader.CARD_UNKNOWN;
140
					}
141

142
					// Create output string
143
					String outputString = "Slot " + slotNum + ": "
144
							+ stateStrings[prevState] + " -> "
145
							+ stateStrings[currState];
146
					currentSlot = slotNum;
147
					currentState = currState;
148
					befor_prevState = prevState;
149
					// System.out.println("状态变化:outputString = " +
150
					// outputString);
151
					((Activity) activity).runOnUiThread(new Runnable() {
152

153
						@Override
154
						public void run() {
155
							// TODO Auto-generated method stub
156
							if (currentState == 1) {
157
								// myEpSusbListener.onCardOut();
158
								// System.out.println("卡片被拔出");
159
								isCardIn = 0;
160
								Toast.makeText(activity, "SIM卡已拔出!",
161
										Toast.LENGTH_SHORT).show();
162
							} else if (currentState == 2) {
163
								// myEpSusbListener.onCardIn();
164
								// System.out.println("卡片被插入");
165
								isCardIn = 1;
166
								Toast.makeText(activity, "SIM卡已插入!",
167
										Toast.LENGTH_SHORT).show();
168
							}
169
						}
170
					});
171

172
				}
173
			});
174
		}
175
		// Register receiver for USB permission
176
		mPermissionIntent = PendingIntent.getBroadcast(activity, 0, new Intent(
177
				ACTION_USB_PERMISSION), 0);
178
		IntentFilter filter = new IntentFilter();
179
		filter.addAction(ACTION_USB_PERMISSION);
180
		filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
181
		activity.registerReceiver(mReceiver, filter);
182

183
		// =================
184

185
		int ret_configReader = -1;
186
		System.out.println("openCardReader");
187
		String deviceName = "";
188
		for (UsbDevice device : usbManager.getDeviceList().values()) {
189
			if (mReader.isSupported(device)) {
190
				Log.i(TAG, device.getDeviceName());
191
				deviceName = device.getDeviceName();
192
			}
193
		}
194
		if (deviceName != null && !"".equals(deviceName)) {
195

196
			for (UsbDevice device : usbManager.getDeviceList().values()) {
197

198
				if (deviceName.equals(device.getDeviceName())) {
199

200
					usbManager.requestPermission(device, mPermissionIntent);
201
					ret_configReader = 0;
202
					break;
203
				}
204
			}
205
		} else {
206
			setIsGetPermision(0);
207
			setIsOpened(0);
208
			setIsCardIn(0);
209
			Toast.makeText(activity, "没有检测到外设,请确认手机是否支持OTG功能!【判别方法:写卡器插入支持OTG功能的手机,设备正面底部绿灯会连续慢闪!】",
210
					Toast.LENGTH_SHORT).show();
211
			//throw new Exception("没有检测到外设,请确认手机是否支持OTG功能!【判别方法:写卡器插入支持OTG功能的手机,设备正面底部绿灯会连续慢闪!】");
212
		}
213
		System.out.println("openCardReader end,ret_configReader = "
214
				+ ret_configReader);
215

216
		return ret_configReader;
217
	}
218

219
	public int getIsGetPermision() {
220
		return isGetPermision;
221
	}
222

223
	public static void setIsGetPermision(int misGetPermision) {
224
		isGetPermision = misGetPermision;
225
	}
226

227
	public int getIsCardReaderOpened() {
228
		return isOpenedCardReader;
229
	}
230

231
	public static void setIsOpened(int misopened) {
232
		isOpenedCardReader = misopened;
233
	}
234
		
235
	public static String getErrmsg() {
236
		return errmsg;
237
	}
238

239
	public static void setErrmsg(String errmsg) {
240
		SimCardBuss.errmsg = errmsg;
241
	}
242

243
	public static int getIsCardIn() {
244
		return isCardIn;
245
	}
246

247
	public static void setIsCardIn(int isCardIn) {
248
		SimCardBuss.isCardIn = isCardIn;
249
	}
250

251
	public byte[] CardPowerOn() throws InterruptedException {
252
		// ======在此执行打开操作===============
253
		// String deviceName = "";
254
		// for (UsbDevice device : usbManager.getDeviceList().values()) {
255
		// if (mReader.isSupported(device)) {
256
		// Log.i(TAG, device.getDeviceName());
257
		// deviceName = device.getDeviceName();
258
		// }
259
		// }
260
		// if (deviceName != null) {
261
		//
262
		// for (UsbDevice device : usbManager.getDeviceList().values()) {
263
		//
264
		// if (deviceName.equals(device.getDeviceName())) {
265
		//
266
		// new OpenTask().execute(device);
267
		// break;
268
		// }
269
		// if (mReader.isOpened()) {
270
		// break;
271
		// }
272
		// }
273
		// } else {
274
		// return null;
275
		// }
276
		// ===============================
277
		// =====================
278
		System.out.println("CardPowerOn");
279
		// int slotNum = mListSlot[0];
280
		int slotNum = 0;
281
		PowerResult prresult = null;
282
		System.out.println("slotNum =" + slotNum);
283

284
		// Get action number
285
		// int actionNum = Reader.CARD_WARM_RESET;
286
		int actionNum = 2;
287

288
		if (slotNum != -1 && actionNum != -1) {
289

290
			if (actionNum < Reader.CARD_POWER_DOWN
291
					|| actionNum > Reader.CARD_WARM_RESET) {
292
				actionNum = Reader.CARD_WARM_RESET;
293
			}
294

295
			// Set parameters
296
			final PowerParams params = new PowerParams();
297
			params.slotNum = slotNum;
298
			params.action = actionNum;
299
			prresult = new PowerResult();
300
			System.out.println(" before mReader.power");
301
			try {
302
				if (!mReader.isOpened()) {
303
				}
304
				prresult.atr = mReader.power(params.slotNum, params.action);
305
				// 上电时写卡器未打开
306
			} catch (Exception e) {
307
				prresult.e = e;
308
				System.out.println("power:" + e.toString());
309
				return null;
310
			}
311
			if (null != prresult.atr) {
312
			} else {
313
				System.out.println("atr==null");
314
				return null;
315
			}
316

317
		} else {
318
			// myEpSusbListener.onCardPowerFailed("");
319
			return null;
320
		}
321

322
		// If slot is selected
323
		if (slotNum != -1) {
324

325
			int preferredProtocols = Reader.PROTOCOL_UNDEFINED;
326
			String preferredProtocolsString = "";
327
			if (true) {
328
				preferredProtocols |= Reader.PROTOCOL_T0;
329
				preferredProtocolsString = "T=0";
330
			}
331
			if (true) {
332
				preferredProtocols |= Reader.PROTOCOL_T1;
333
				if (preferredProtocolsString != "") {
334
					preferredProtocolsString += "/";
335
				}
336
				preferredProtocolsString += "T=1";
337
			}
338

339
			if (preferredProtocolsString == "") {
340
				preferredProtocolsString = "None";
341
			}
342

343
			// Set Parameters
344
			SetProtocolParams params_prototal = new SetProtocolParams();
345
			params_prototal.slotNum = slotNum;
346
			params_prototal.preferredProtocols = preferredProtocols;
347

348
			SetProtocolResult result_protocal = new SetProtocolResult();
349

350
			try {
351
				result_protocal.activeProtocol = mReader.setProtocol(
352
						params_prototal.slotNum,
353
						params_prototal.preferredProtocols);
354
			} catch (Exception e) {
355
				prresult.e = e;
356
			}
357
		}
358
		System.out.println("123");
359

360
		String ret_atr = "";
361
		for (int i = 0; i < 5; i++) {
362
			if (null == ret_atr || "".equals(ret_atr)) {
363
				System.out
364
						.println("result.atr.length = " + prresult.atr.length);
365
				ret_atr = byteToHexString(prresult.atr, prresult.atr.length);
366
				System.out.println("java cardpoweron suc,atr = ");
367
				// myEpSusbListener.onCardPowerSuc(ret_atr);
368
			}
369

370
		}
371
		System.out.println("ret_atr = " + ret_atr);
372
		return ret_atr.getBytes();
373
	}// CardPowerOn end
374

375
	public byte[] getATR() {
376

377
		return null;
378
	}
379

380
	public byte[] sendApduCommand(int CmdInLength, String CommandIn,
381
			int CmdOutLength, String CommandOut) {
382
		String commresponse = null;
383
		// int slotNum = mListSlot[0];
384
		int slotNum = 0;
385
		if (slotNum != Spinner.INVALID_POSITION) {
386
			TransmitParams params = new TransmitParams();
387
			params.slotNum = slotNum;
388
			params.controlCode = -1;
389
			params.commandString = CommandIn;
390
			TransmitProgress progress = new TransmitProgress();
391
			byte[] command;
392
			byte[] response = new byte[1000];
393
			int responseLength;
394
			int foundIndex;
395
			int startIndex = 0;
396

397
			do {
398
				foundIndex = params.commandString.indexOf('\n', startIndex);
399
				if (foundIndex >= 0) {
400
					command = toByteArray(params.commandString.substring(
401
							startIndex, foundIndex));
402
				} else {
403
					command = toByteArray(params.commandString
404
							.substring(startIndex));
405
				}
406

407
				startIndex = foundIndex + 1;
408

409
				try {
410

411
					if (params.controlCode < 0) {
412
						responseLength = mReader.transmit(params.slotNum,
413
								command, command.length, response,
414
								response.length);
415

416
					} else {
417
						responseLength = mReader.control(params.slotNum,
418
								params.controlCode, command, command.length,
419
								response, response.length);
420
					}
421

422
					progress.command = command;
423
					progress.commandLength = command.length;
424
					progress.response = response;
425
					progress.responseLength = responseLength;
426
					progress.e = null;
427

428
				} catch (Exception e) {
429

430
					progress.command = null;
431
					progress.commandLength = 0;
432
					progress.response = null;
433
					progress.responseLength = 0;
434
					progress.e = e;
435
				}
436

437
			} while (foundIndex >= 0);
438
			try {
439
				Thread.sleep(400);
440
			} catch (InterruptedException e) {
441
				// TODO Auto-generated catch block
442
				e.printStackTrace();
443
			}
444
			commresponse = byteToHexString(progress.response,
445
					progress.responseLength);
446
			System.out.println("progress.responseLength="
447
					+ progress.responseLength);
448
			int timesRead = 0;
449
			while ("".equals(commresponse) || null == commresponse) {
450
				commresponse = byteToHexString(progress.response,
451
						progress.responseLength);
452
				try {
453
					Thread.sleep(200);
454
				} catch (InterruptedException e) {
455
					// TODO Auto-generated catch block
456
					e.printStackTrace();
457
				}
458
				timesRead++;
459
				if (55 == timesRead) {
460
					break;
461
				}
462
			}
463

464
		}
465

466
		return commresponse.getBytes();
467
	}
468

469
	public int cardPowerOff() {
470

471
		// mReader.close();
472
		// myEpSusbListener.onClosed();
473
		return 0;
474
	}
475

476
	public int CloseCardReader() {
477

478
		return 0;
479
	}
480

481
	private BroadcastReceiver mReceiver = new BroadcastReceiver() {
482

483
		public void onReceive(final Context context, Intent intent) {
484

485
			String action = intent.getAction();
486

487
			if (ACTION_USB_PERMISSION.equals(action)) {
488
				synchronized (this) {
489

490
					final UsbDevice device = (UsbDevice) intent
491
							.getParcelableExtra(UsbManager.EXTRA_DEVICE);
492

493
					if (intent.getBooleanExtra(
494
							UsbManager.EXTRA_PERMISSION_GRANTED, false)) {
495
						Thread thread = new Thread(new Runnable() {
496

497
							@Override
498
							public void run() {
499
								// TODO Auto-generated method stub
500
								setIsGetPermision(1);
501
								if (device != null) {
502
									Exception result = null;
503

504
									try {
505
										mReader.open(device);
506
									} catch (Exception e) {
507
										result = e;
508
									}
509
									if (result != null) {
510
										System.out
511
												.println("OpenTask-->onPostExecute"
512
														+ result.toString());
513
										errmsg = result.toString();
514
										setIsOpened(0);
515
									} else {
516
										setIsOpened(1);
517
									}
518
								}
519
							}
520
						});
521
						thread.start();
522

523
					} else {
524
						Thread thread = new Thread(new Runnable() {
525

526
							@Override
527
							public void run() {
528
								// TODO Auto-generated method stub
529
								setIsGetPermision(0);
530
							}
531
						});
532
						thread.start();
533

534
					}
535
				}
536

537
			} else if (UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action)) {
538
				Thread thread = new Thread(new Runnable() {
539

540
					@Override
541
					public void run() {
542
						// TODO Auto-generated method stub
543
						context.unregisterReceiver(mReceiver);
544
						if (mReader != null) {
545
							 mReader = null;
546
						}
547
						setIsCardIn(0);
548
						setIsGetPermision(0);
549
						setIsOpened(0);
550
					}
551
				});
552
				thread.start();
553
//				synchronized (this) {
554
//					context.unregisterReceiver(mReceiver);
555
//					// mReader.close();
556
//					setIsGetPermision(0);
557
//					setIsOpened(0);
558
//
559
//				}
560
			}
561
		}
562
	};
563

564
	private static int[] mListSlot;
565

566
	private class OpenTask extends AsyncTask<UsbDevice, Void, Exception> {
567

568
		@Override
569
		protected Exception doInBackground(UsbDevice... params) {
570

571
			Exception result = null;
572

573
			try {
574
				mReader.open(params[0]);
575
			} catch (Exception e) {
576
				result = e;
577
			}
578
			return result;
579
		}
580

581
		@Override
582
		protected void onPostExecute(Exception result) {
583

584
			if (result != null) {
585
				System.out.println("OpenTask-->onPostExecute,"
586
						+ result.toString());
587
				Thread thread = new Thread(new Runnable() {
588

589
					@Override
590
					public void run() {
591
						// TODO Auto-generated method stub
592
						setIsOpened(0);
593
					}
594
				});
595
				thread.start();
596
			} else {
597
				Thread thread = new Thread(new Runnable() {
598

599
					@Override
600
					public void run() {
601
						// TODO Auto-generated method stub
602
						setIsOpened(1);
603
					}
604
				});
605
				thread.start();
606
			}
607
		}
608
	}
609

610
	private class PowerParams {
611

612
		public int slotNum;
613
		public int action;
614
	}
615

616
	private class PowerResult {
617

618
		public byte[] atr;
619
		public Exception e;
620
	}
621

622
	private class SetProtocolParams {
623

624
		public int slotNum;
625
		public int preferredProtocols;
626
	}
627

628
	private class SetProtocolResult {
629

630
		public int activeProtocol;
631
		public Exception e;
632
	}
633

634
	private class TransmitParams {
635

636
		public int slotNum;
637
		public int controlCode;
638
		public String commandString;
639
	}
640

641
	private class TransmitProgress {
642

643
		public byte[] command;
644
		public int commandLength;
645
		public byte[] response;
646
		public int responseLength;
647
		public Exception e;
648
	}
649

650
	private byte[] toByteArray(String hexString) {
651

652
		int hexStringLength = hexString.length();
653
		byte[] byteArray = null;
654
		int count = 0;
655
		char c;
656
		int i;
657

658
		for (i = 0; i < hexStringLength; i++) {
659

660
			c = hexString.charAt(i);
661
			if (c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a'
662
					&& c <= 'f') {
663
				count++;
664
			}
665
		}
666

667
		byteArray = new byte[(count + 1) / 2];
668
		boolean first = true;
669
		int len = 0;
670
		int value;
671
		for (i = 0; i < hexStringLength; i++) {
672

673
			c = hexString.charAt(i);
674
			if (c >= '0' && c <= '9') {
675
				value = c - '0';
676
			} else if (c >= 'A' && c <= 'F') {
677
				value = c - 'A' + 10;
678
			} else if (c >= 'a' && c <= 'f') {
679
				value = c - 'a' + 10;
680
			} else {
681
				value = -1;
682
			}
683

684
			if (value >= 0) {
685

686
				if (first) {
687

688
					byteArray[len] = (byte) (value << 4);
689

690
				} else {
691

692
					byteArray[len] |= value;
693
					len++;
694
				}
695

696
				first = !first;
697
			}
698
		}
699

700
		return byteArray;
701
	}
702

703
	private static String byteToHexString(byte[] buffer, int bufferLength) {
704

705
		String bufferString = "";
706

707
		for (int i = 0; i < bufferLength; i++) {
708

709
			String hexChar = Integer.toHexString(buffer[i] & 0xFF);
710
			if (hexChar.length() == 1) {
711
				hexChar = "0" + hexChar;
712
			}
713

714
			bufferString += hexChar.toUpperCase() + "";
715
		}
716

717
		if (bufferString != "") {
718
		}
719
		return bufferString;
720
	}
721
}

+ 19 - 0
multiple-server/etc/app-config.xml

@ -1,5 +1,6 @@
1 1
<?xml version="1.0" encoding="UTF-8"?>
2 2
<apps>
3
    <!--
3 4
	<app appId="display" appName="IPU展示" appType="I" appIcon="e_ico-qr"
4 5
		appWelcomePage="welcome/WelcomeDisplay.htm" requestHost="http://10.0.2.2:8080"
5 6
		requestPath="/display" requestServlet="/mobiledata" appPath="display-client" />
@ -15,4 +16,22 @@
15 16
	<app appId="native" appName="原生案例" appType="N" appIcon="e_ico-storage"
16 17
		 packageName="com.ai.mobile.display" className="com.ai.mobile.display.MainActivity" 
17 18
		 downloadUrl="http://114.215.100.48:8080/setup/display-client.apk"/>
19
	--> 
20
	
21
	<app appId="smartCRM" appName="智能终端CRM" appType="I" appIcon="e_ico-wade-ob" appIndexPage="Index"
22
		appWelcomePage="welcome/Welcome-smartCRM.htm" requestHost="http://192.168.1.108:8080"
23
		requestPath="/smartCRM" requestServlet="/mobiledata" appPath="smartCRM" />
24
	
25
	<app appId="realname" appName="实名登记" appType="I" appIcon="e_ico-realname" appIndexPage="Index"
26
		appWelcomePage="welcome/Welcome-realname.htm" requestHost="http://192.168.1.108:8080"
27
		requestPath="/realname" requestServlet="/mobiledata" appPath="realname" />
28
	 
29
	<app appId="bukayi" appName="换卡易" appType="I" appIcon="e_ico-bukayi" appIndexPage="UserConfirm"
30
		appWelcomePage="welcome/Welcome-bukayi.htm" requestHost="http://192.168.1.108:8088"
31
		requestPath="/bukayi-server" requestServlet="/mobiledata" appPath="bukayi" />
32
	
33
	<app appId="guangkuandai" appName="光宽带" appType="I" appIcon="e_ico-guangkuandai" appIndexPage="Index"
34
		appWelcomePage="welcome/Welcome-guangkuandai.htm" requestHost="http://192.168.1.108:8088"
35
		requestPath="/appserver" requestServlet="/mobiledata" appPath="guangkuandai" />
36
	 
18 37
</apps>

+ 1 - 1
multiple-server/etc/memcache.properties

@ -6,5 +6,5 @@
6 6
#memcache.session_cache.max_conn=50
7 7
#memcache.session_cache.max_idle=60000
8 8
#memcache.session_cache.maint_sleep=30
9
memcache.session_cache.cluster=192.168.128.77:10001
9
memcache.session_cache.cluster=10.7.5.77:10001
10 10


+ 10 - 0
multiple-server/web/biz/css/project.css

@ -15,6 +15,9 @@
15 15
.e_ico-code:before          { content:"\e60b";}/*代码*/
16 16
.e_ico-chat:before          { content:"\e619";}/*推送*/
17 17
.e_ico-scene:before         { content:"\e618";}/*场景*/
18
.e_ico-guangkuandai:before  { content:"\e621";}/*光宽带*/
19
.e_ico-bukayi:before        { content:"\e622";}/*换卡易*/
20
.e_ico-realname:before        { content:"\e623";}/*实名登记*/
18 21
.e_ico-ui-button:before     { content:"\e60d";}
19 22
.e_ico-ui-form:before       { content:"\e60e";}
20 23
.e_ico-ui-icon:before       { content:"\e60c";}
@ -49,6 +52,9 @@
49 52
.e_ico-qr,
50 53
.e_ico-device,
51 54
.e_ico-about,
55
.e_ico-guangkuandai,
56
.e_ico-bukayi,
57
.e_ico-realname,
52 58
.e_ico-wade-ob { font-family:"project";}
53 59
.m_nav .e_ico-conect { color:#8fc320;}
54 60
.m_nav .e_ico-net { color:#c37c20;}
@ -72,6 +78,10 @@
72 78
.m_nav .e_ico-code { color:#8fc320;}
73 79
.m_nav .e_ico-chat { color:#c37c20;}
74 80
.m_nav .e_ico-scene { color:#c33f20;}
81
.m_nav .e_ico-guangkuandai { color:#e40077;}
82
.m_nav .e_ico-bukayi { color:#0085d0;}
83
.m_nav .e_ico-wade-ob { color:#8fc320;}
84
.m_nav .e_ico-realname { color:#4489ac;}
75 85

76 86

77 87


二進制
multiple-server/web/biz/img/project.ttf


二進制
multiple-server/web/biz/img/welcome-bukayi.jpg


二進制
multiple-server/web/biz/img/welcome-guangkuandai.jpg


二進制
multiple-server/web/biz/img/welcome-realname.jpg


二進制
multiple-server/web/biz/img/welcome-smartCRM.png


+ 15 - 0
multiple-server/web/welcome/Welcome-bukayi.htm

@ -0,0 +1,15 @@
1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
<html>
3
<head>
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
<style type="text/css">
6
	body { margin:0; padding:0;position:absolute;width:100%;height:100%;overflow:hidden;}
7
	div { margin:0; padding:0;}
8
	img { border:0; outline: none; vertical-align:middle;width:100%; height:100%;}
9
</style>
10
<title>加载中</title>
11
</head>
12
<body>
13
<img src="../biz/img/welcome-bukayi.jpg" />
14
</body>
15
</html>

+ 15 - 0
multiple-server/web/welcome/Welcome-guangkuandai.htm

@ -0,0 +1,15 @@
1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
<html>
3
<head>
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
<style type="text/css">
6
	body { margin:0; padding:0;position:absolute;width:100%;height:100%;overflow:hidden;}
7
	div { margin:0; padding:0;}
8
	img { border:0; outline: none; vertical-align:middle;width:100%; height:100%;}
9
</style>
10
<title>加载中</title>
11
</head>
12
<body>
13
<img src="../biz/img/welcome-guangkuandai.jpg" />
14
</body>
15
</html>

+ 15 - 0
multiple-server/web/welcome/Welcome-realname.htm

@ -0,0 +1,15 @@
1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
<html>
3
<head>
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
<style type="text/css">
6
	body { margin:0; padding:0;position:absolute;width:100%;height:100%;overflow:hidden;}
7
	div { margin:0; padding:0;}
8
	img { border:0; outline: none; vertical-align:middle;width:100%; height:100%;}
9
</style>
10
<title>加载中</title>
11
</head>
12
<body>
13
<img src="../biz/img/welcome-realname.jpg" />
14
</body>
15
</html>

+ 15 - 0
multiple-server/web/welcome/Welcome-smartCRM.htm

@ -0,0 +1,15 @@
1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
<html>
3
<head>
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
<style type="text/css">
6
	body { margin:0; padding:0;position:absolute;width:100%;height:100%;overflow:hidden;}
7
	div { margin:0; padding:0;}
8
	img { border:0; outline: none; vertical-align:middle;width:100%; height:100%;}
9
</style>
10
<title>加载中</title>
11
</head>
12
<body>
13
<img src="../biz/img/welcome-smartCRM.png" />
14
</body>
15
</html>

二進制
wade-mobile-library/common/jdom1.0.jar


二進制
wade-mobile-library/common/quartz-all-1.6.6.jar


二進制
wade-mobile-library/common/wade-cache.jar


static - Nuosi Git Service

static

guohh c7acc44e99 提交文档生成 vor 7 Jahren
..
resources c7acc44e99 提交文档生成 vor 7 Jahren
ext-all.js c7acc44e99 提交文档生成 vor 7 Jahren