我用java写了一系列的接口方法供别人调用
假如接口地址是类似于http://218.57.146.190:8088/css/hytj这样的一个地址
我的请求参数是一个xml格式的字符串
请各位帮忙下我的那个程序要怎么发布和部署?
程序是打算所有的接口请求都只通过请求上面那个地址
然后程序根据通过解析xml格式的字符串判断用户请求的具体方法,根据具体的方法
调用实际的业务逻辑处理,并返回响应结果。
是不是需要安装和提供一个apache http server,因为程序全是接口
是不是就可以省去tomcat之类的容器?
请各位尽量说的具体一点吧,我现在还只知道怎么调用别人发布的类似这样的服务
不太清楚自己发布这样服务的方法和流程
------解决方案--------------------------------------------------------
如果你是用j2ee实现的
那你肯定离不开tomcat之类的web容器
apache http server 只能解析静态文件
你既然会开发 发布不会?
------解决方案--------------------------------------------------------
搜一下如何创建、发布webservice之类的
------解决方案--------------------------------------------------------
WebService可以实现,不过你用Servlet也可以实现,调用Service方法就可以了,这个方法接收的是个流
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
request.setCharacterEncoding("UTF-8");
InputStream input = request.getInputStream();
String xml = OperateUtil.file2String(input, "UTF-8");
}
/**
* 读取输入流为一个内存字符串,保持文件原有的换行格式
*
* @param in 输入流
* @param charset 文件字符集编码
* @return 文件内容的字符串
*/
public static String file2String(InputStream in, String charset) {
StringBuffer sb = new StringBuffer();
try {
LineNumberReader reader = new LineNumberReader(new BufferedReader(new InputStreamReader(in, charset)));
String line;
while ((line = reader.readLine()) != null) {
sb.append(line).append(System.getProperty("line.separator"));
}
reader.close();
} catch (UnsupportedEncodingException e) {
log.error("读取文件为一个内存字符串失败,失败原因是使用了不支持的字符编码" + charset, e);
} catch (IOException e) {
log.error("读取文件为一个内存字符串失败,失败原因是读取文件异常!", e);
}
return sb.toString();
这个input就是你的那个xml文件,你的http://218.57.146.190:8088/css/hytj地址如果可以弄成servlet的话就可以这么做了,不过你要把xml字符转成流传到这个方法里面来,然后怎么xml解析出来你得自己找方法.网上一大把。WebService的流程复杂一点,要配置的东西多些,不过更适合你的需求。
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
楼主只是想发布一个很简单WebService么?可以通过 注解,直接利用Java自身能力完成,如下:
- Java code
import javax.jws.WebMethod;import javax.jws.WebService;import javax.jws.soap.SOAPBinding;import javax.xml.ws.Endpoint;@WebService(targetNamespace = "http://localhost:8080/ws")@SOAPBinding(style = SOAPBinding.Style.RPC)public class JavaWS { @WebMethod public String hello() { System.out.println("hello()"); return "Hello!"; } @WebMethod public String echo(String msg) { System.out.println("echo(" + msg + ")"); return msg; } public static void main(String[] args) { Endpoint.publish("http://localhost:8080/ws", new JavaWS()); }}