📄 asyncremoteserviceservlettest.java
字号:
//========================================================================
//Copyright 2007 Mort Bay Consulting Pty. Ltd.
//------------------------------------------------------------------------
//Licensed 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.
//========================================================================
package org.mortbay.gwt;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import junit.framework.TestCase;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.servlet.Context;
public class AsyncRemoteServiceServletTest extends TestCase
{
private Server _server;
public void setUp() throws Exception
{
startServer();
}
public void tearDown() throws Exception
{
stopServer();
}
private void startServer() throws Exception
{
_server = new Server();
SelectChannelConnector scc = new SelectChannelConnector();
scc.setPort(8010);
_server.addConnector(scc);
Context context = new Context();
context.setContextPath("/");
context.addServlet(HelloWorldServiceImpl.class, "/helloworld");
_server.setHandler(context);
_server.start();
}
private void stopServer() throws Exception
{
_server.stop();
_server = null;
}
public void testRPC() throws Exception
{
// place holder... have to figure out the exact output string the gwt-client sends.
// sending "foo" to HelloWorldServiceImpl.sayHello(String);
String content = "306http://localhost:8080/org.mortbay.gwt.example.HelloWorld/" +
"5BA8A5B3E35F40698BB0BF65F390BCF2" +
"org.mortbay.gwt.example.client.HelloWorldService" +
"sayHellojava.lang.Stringfoo1234156";
long now = System.currentTimeMillis();
URL url = new URL("http://localhost:8010/helloworld");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "text/x-gwt-rpc; charset=utf-8");
conn.setDoOutput(true);
conn.setInstanceFollowRedirects(true);
conn.connect();
conn.getOutputStream().write(content.getBytes());
conn.getOutputStream().flush();
isTokenPresent(conn, "//OK");
conn.disconnect();
System.err.println("ELAPSED: " + (System.currentTimeMillis() - now));
}
protected static boolean isTokenPresent(HttpURLConnection conn, String token) throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = null;
boolean present = false;
System.err.println("RESPONSE");
while((line=br.readLine())!=null)
{
System.err.println(line);
if(line.indexOf(token)!=-1)
{
present = true;
break;
}
}
conn.disconnect();
return present;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -