首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

有大神帮小弟我看看这个webservice接口写的哪里有有关问题吗

2012-12-15 
有大神帮我看看这个webservice接口写的哪里有问题吗?我是用weblogic 12发布的cxf webservice接口。我的接口

有大神帮我看看这个webservice接口写的哪里有问题吗?
我是用weblogic 12发布的cxf webservice接口。

我的接口类:
package servhellow;

import javax.jws.WebService;

@WebService
public interface HelloWorld {
    String sayHi(String text);
    
    String sayHiXML(String text, int index);
    
    String sayHiNull();
}
实现类:
package servhellow;

import java.util.List;

import javax.jws.WebService;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;


@WebService(endpointInterface = "servhellow.HelloWorld")
public class HelloWorldImpl implements HelloWorld {

    public String sayHi(String text) {
        System.out.println("sayHi called text=" + text);
        return "Hello " + text;
    }

    public String sayHiXML(String text, int index) {
System.out.println("time1=" + System.currentTimeMillis());
        System.out.println("sayHiXML called");
        System.out.println("text:\n" + text);
        
try {
        Document doc = DocumentHelper.parseText(text);

System.out.println("doc.asXML():\n" + doc.asXML());
Element root = doc.getRootElement();
List list = doc.selectNodes("//root/namelist/name/@sex");
System.out.println("listsize=" + list.size());
for (int i = 0; i<list.size(); i++) {
// Element ele = (Element)list.get(i);
// System.out.println(ele.asXML());
Attribute attr = (Attribute)list.get(i);
System.out.println(attr.asXML() + ", name=" + attr.getName() +
", text=" + attr.getText() + ", value=" + attr.getValue() +
", path=" + attr.getPath());
}

list = doc.selectNodes("//root/namelist/name");
System.out.println("listsize=" + list.size());
for (int i = 0; i<list.size(); i++) {
Element ele = (Element)list.get(i);
System.out.println(ele.asXML() + ", name=" + ele.getName() +
", text=" + ele.getText() + ", value=" + ele.getStringValue() +
", path=" + ele.getPath());
}

Element subroot = root.element("attrlist");
if (subroot == null) {
return "ERROR";
}
list = subroot.elements();
// list = doc.selectNodes("//root/attrlist");
// list = ((Element)list.get(0)).elements();
System.out.println("listsize=" + list.size());
for (int i = 0; i<list.size(); i++) {
Element ele = (Element)list.get(i);
System.out.println(ele.asXML() + ", name=" + ele.getName() +
", text=" + ele.getText() + ", value=" + ele.getStringValue() +


", path=" + ele.getPath());
}

OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
XMLWriter xmlWriter = new XMLWriter(format);
xmlWriter.write(doc);

} catch (Exception e) {
e.printStackTrace();
}
System.out.println("time2=" + System.currentTimeMillis());
        return "Hello " + text + ", index=" + index;
    }
    
    public String sayHiNull() {
     System.out.println("sayHiNull called");
     return "hellow no input";
    }
}
定义的服务:
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd


<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

<jaxws:endpoint 
  id="helloWorld" 
  implementor="servhellow.HelloWorldImpl" 
  address="/HelloWorld" />

</beans>
定义客户端:
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd


    <bean id="clienthellow" class="servhellow.HelloWorld" 
      factory-bean="clientHellowFactory" factory-method="create"/>
    
<bean id="clientHellowFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
  <property name="serviceClass" value="servhellow.HelloWorld"/>
  <property name="address" value="http://localhost:7001/services/HelloWorld"/>
</bean>

</beans>

web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

调用程序:
package client;

import java.util.Map;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.*;
import org.springframework.context.support.ClassPathXmlApplicationContext;


import servhellow.HelloWorld;
import servhellow.HelloWorldImpl;


public final class ClientHellow {

    private ClientHellow() {
    }

public void sayHi() {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(


new String[] { "wsclient/helloworld.xml" });

// HelloWorld client = (HelloWorld) context.getBean("clienthellow");
// System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1"+client);
HelloWorld client = new HelloWorldImpl();
String response = client.sayHi("Joe");
System.out.println("Response: " + response);
}
    
public void sayHiXML() {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
new String[] { "wsclient/helloworld.xml" });
HelloWorld client = (HelloWorld) context.getBean("clienthellow");

String xmlstr = xmlpack();
String response = client.sayHiXML(xmlstr, 1);
System.out.println("Response: \n" + response);
}
    
/**
 * 使用 jdom 生成 xml 文件
 * @return
 */
private String xmlpack() {
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("root");

Element subroot = root.addElement("namelist");
Element ele = subroot.addElement("name");
ele.setText("Tom");
ele.addAttribute("sex", "男&nbsp22");

ele = subroot.addElement("name");
ele.setText("Mary");
ele.addAttribute("sex", "女");

subroot = root.addElement("attrlist");
ele = subroot.addElement("name1");
ele.setText("Tom1");
ele.addAttribute("sex1", "b1");

ele = subroot.addElement("name1");
ele.setText("Mary1");
ele.addAttribute("sex1", "g1");

try {

return doc.asXML();
} catch (Exception e) {
e.printStackTrace();
}

return "";
}

public static void main(String args[]) throws Exception {
ClientHellow client = new ClientHellow();
System.out.println("time1=" + System.currentTimeMillis());
     client.sayHi();
System.out.println("time2=" + System.currentTimeMillis());
     client.sayHiXML();
System.out.println("time3=" + System.currentTimeMillis());
//     System.out.println(client.xmlpack());
    }
}

运行后为什么会报 http://localhost:7001/services/HelloWorld   404。
具体信息:
警告: Interceptor for {http://servhellow/}HelloWorldService#{http://servhellow/}sayHiXML has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Could not send Message.
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:484)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:310)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:262)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
at $Proxy34.sayHiXML(Unknown Source)
at client.ClientHellow.sayHiXML(ClientHellow.java:56)
at client.ClientHellow.main(ClientHellow.java:101)
Caused by: java.net.ConnectException: ConnectException invoking http://localhost:7001/services/HelloWorld: Connection refused: connect


at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:2058)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:2043)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:639)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
... 9 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at sun.net.NetworkClient.doConnect(NetworkClient.java:158)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
at sun.net.www.http.HttpClient.New(HttpClient.java:306)
at sun.net.www.http.HttpClient.New(HttpClient.java:323)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:852)
at 


全部代码都在这 希望能有人一起讨论讨论,指点指点,我也是刚开始做java有好多地方不太懂希望大家帮帮忙。共同学习。
[解决办法]
没有愿意进来聊聊的吗?
[解决办法]
null

热点排行