[JBossWS] - Please help on invoking the jboss WS?
by wangfei90
I recently met the problem when I use the jbossWS. I use the jboss 4.2 AS and jbossws2.0GA, jdk1.5.07
Here is my code
package tv.blackarrow.integration.twc.ws;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
/**
* This class was generated by the JAX-WS RI.
* JAX-WS RI 2.1.1-b03-
* Generated source version: 2.0
*
*/
@WebService(name = "Hello", targetNamespace = "http://ws.twc.integration.blackarrow.tv/")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface Hello {
/**
*
* @param arg0
* @return
* returns java.lang.String
*/
@WebMethod
@WebResult(partName = "return")
public String echo(
@WebParam(name = "arg0", partName = "arg0")
String arg0);
}
package tv.blackarrow.integration.twc.ws;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@javax.jws.WebService(endpointInterface="tv.blackarrow.integration.twc.ws.Hello")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class HelloImpl implements Hello{
@WebMethod
public String echo(String input)
{
System.out.println("This is echo of"+input);
return input;
}
}
client side
ackage tv.blackarrow.integration.twc.wsclient;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import javax.xml.ws.WebEndpoint;
import javax.xml.ws.WebServiceClient;
import tv.blackarrow.integration.twc.ws.*;
/**
* This class was generated by the JAX-WS RI.
* JAX-WS RI 2.1.1-b03-
* Generated source version: 2.0
*
*/
@WebServiceClient(name = "HelloService", targetNamespace = "http://ws.twc.integration.blackarrow.tv/", wsdlLocation = "http://localhost:8080/baapi/hello?wsdl")
public class HelloService
extends Service
{
private final static URL HELLOSERVICE_WSDL_LOCATION;
static {
URL url = null;
try {
url = new URL("http://localhost:8080/baapi/hello?wsdl");
} catch (MalformedURLException e) {
e.printStackTrace();
}
HELLOSERVICE_WSDL_LOCATION = url;
}
public HelloService(URL wsdlLocation, QName serviceName) {
super(wsdlLocation, serviceName);
}
public HelloService() {
super(HELLOSERVICE_WSDL_LOCATION, new QName("http://ws.twc.integration.blackarrow.tv/", "HelloService"));
}
/**
*
* @return
* returns Hello
*/
@WebEndpoint(name = "HelloPort")
public Hello getHelloPort() {
return (Hello)super.getPort(new QName("http://ws.twc.integration.blackarrow.tv/", "HelloPort"), Hello.class);
}
}
package tv.blackarrow.integration.twc.wsclient;
import tv.blackarrow.integration.twc.ws.*;
public class HelloClient {
public static void main(String args[])
{
if (args.length != 1)
{
System.err.println("usage: EchoClient ");
System.exit(1);
}
HelloService service = new HelloService();
Hello echo = service.getHelloPort();
System.out.println("Server said: " + echo.echo(args[0]));
}
}
Here is my web.xml setting
<servlet-name>HelloService</servlet-name>
<servlet-class>tv.blackarrow.integration.twc.ws.Hello</servlet-class>
<load-on-startup>1</load-on-startup>
<servlet-mapping>
<servlet-name>HelloService</servlet-name>
<url-pattern>/hello/*</url-pattern>
</servlet-mapping>
Here is the wsdl
?
?
?
?
?
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
?
<soap:operation soapAction=""/>
?
<soap:body namespace="http://ws.twc.integration.blackarrow.tv/" use="literal"/>
?
<soap:body namespace="http://ws.twc.integration.blackarrow.tv/" use="literal"/>
?
?
<soap:address location="http://127.0.0.1:8080/baapi/hello"/>
when I run the wsrunclient to invoke the client, it shows
[Fatal Error] :-1:-1: Premature end of file.
Server said: null
I check with the jboss log,
20:42:17,955 INFO [LifecycleHandlerImpl] WebService started: http://127.0.0.1:8080/baapi/hello
20:43:25,799 ERROR [SOAPFaultHelperJAXWS] SOAP request exception
java.lang.ClassCastException: org.jboss.ws.core.soap.EnvelopeBuilderDOM
at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:252)
at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:179)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:377)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:260)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:177)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:110)
at org.jboss.wsf.spi.invocation.EndpointServlet.service(EndpointServlet.java:72)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:613)
20:43:25,807 ERROR [SOAPFaultHelperJAXWS] Error creating SOAPFault message
javax.xml.soap.SOAPException: java.lang.ClassCastException: org.jboss.ws.core.soap.MessageFactoryImpl
at javax.xml.soap.MessageFactory.newInstance(MessageFactory.java:77)
at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.toSOAPMessage(SOAPFaultHelperJAXWS.java:231)
at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.exceptionToFaultMessage(SOAPFaultHelperJAXWS.java:161)
at org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS.createFaultMessageFromException(SOAP11BindingJAXWS.java:104)
at org.jboss.ws.core.CommonSOAPBinding.bindFaultMessage(CommonSOAPBinding.java:645)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:418)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:260)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:177)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:110)
at org.jboss.wsf.spi.invocation.EndpointServlet.service(EndpointServlet.java:72)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:613)
Caused by: java.lang.ClassCastException: org.jboss.ws.core.soap.MessageFactoryImpl
at javax.xml.soap.MessageFactory.newInstance(MessageFactory.java:73)
... 28 more
20:43:25,808 ERROR [RequestHandlerImpl] Error processing web service request
org.jboss.ws.WSException: javax.xml.ws.WebServiceException: Cannot create SOAPFault message for: java.lang.ClassCastException: org.jboss.ws.core.soap.EnvelopeBuilderDOM
at org.jboss.ws.WSException.rethrow(WSException.java:68)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:298)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:177)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:110)
at org.jboss.wsf.spi.invocation.EndpointServlet.service(EndpointServlet.java:72)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:613)
Caused by: javax.xml.ws.WebServiceException: Cannot create SOAPFault message for: java.lang.ClassCastException: org.jboss.ws.core.soap.EnvelopeBuilderDOM
at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.exceptionToFaultMessage(SOAPFaultHelperJAXWS.java:169)
at org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS.createFaultMessageFromException(SOAP11BindingJAXWS.java:104)
at org.jboss.ws.core.CommonSOAPBinding.bindFaultMessage(CommonSOAPBinding.java:645)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:418)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:260)
... 22 more
Please help!!! thanks a million
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4096798#4096798
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4096798
18Â years, 9Â months
[JBoss Seam] - Re: the method invoked twice, when render the page once!
by chlol
i use the @Factory,but can't solve the question
my list bean generated jboss gen:
package cn.sh.guanghua.manhour.service.admin;
|
| import org.jboss.seam.Component;
| import org.jboss.seam.ScopeType;
| import org.jboss.seam.annotations.Factory;
| import org.jboss.seam.annotations.Name;
| import org.jboss.seam.framework.EntityQuery;
|
| import java.util.ArrayList;
| import java.util.List;
| import java.util.Arrays;
|
| import javax.faces.model.SelectItem;
| import javax.persistence.Query;
|
| import cn.sh.guanghua.manhour.common.Constants;
| import cn.sh.guanghua.manhour.model.admin.User;
| import cn.sh.guanghua.manhour.service.Authenticator;
|
| @Name("userList")
| public class UserList extends EntityQuery {
|
|
| private long projectId = -1;
|
| /**
| *
| */
| private static final long serialVersionUID = -4312632636363206451L;
|
| private static final String[] RESTRICTIONS = {
| "lower(user.username) like concat('%',concat(lower(#{userList.user.username}),'%'))",
| "lower(user.name) like concat('%',concat(lower(#{userList.user.name}),'%'))"};
|
| private User user = new User();
|
| @Override
| public String getEjbql() {
| return "select user from User user where username <> 'admin'";
| }
|
| @Override
| public Integer getMaxResults() {
| return 15;
| }
|
| public User getUser() {
| return user;
| }
|
| @Override
| public List<String> getRestrictions() {
| List<String> list = new ArrayList<String>();
|
| if (this.getUser().getState() == 0) {
| list.add("lower(user.state) = #{userList.user.state}");
| }
| else if (this.getUser().getState() == 1) {
| list.add("lower(user.state) = #{userList.user.state}");
| }
| else {
| //do nothing
| }
| list.addAll(Arrays.asList(RESTRICTIONS));
| return list;
| }
|
| /**
| * @return
| */
| @SuppressWarnings("unchecked")
| @Factory(scope=ScopeType.CONVERSATION)
| public List<SelectItem> getUsersByManager() {
| Authenticator authenticator = (Authenticator) Component.getInstance("authenticator");
| User loginUser = authenticator.getUser();
| List<SelectItem> list = new ArrayList<SelectItem>();
| list.add(new SelectItem(loginUser.getId(), loginUser.getName()));
|
| Query query = getEntityManager().createQuery("select user from User user " +
| "where user.username <> 'admin' and user.state = 0 " +
| " and user.userManager.id=" + loginUser.getId() + " and user.id <> " + loginUser.getId());
| List<User> users = query.getResultList();
| for (User user : users) {
| list.add(new SelectItem(user.getId(), user.getName()));
| }
| return list;
| }
|
|
|
| }
|
my page code invoking the method:
<h:selectOneMenu id="principalId" value="#{activityList.principalId}" onchange="javascript:document.getElementById('weekActivity').submit();">
| <f:selectItems value="#{userList.usersByManager}"/>
| </h:selectOneMenu
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4096797#4096797
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4096797
18Â years, 9Â months