[JBossWS] - Re: Providing your own wsdl instead of the generated one.
by ngtdave
Just to be clear which versions I'm using:
Boss 4.2.0.CR1
jbossws-1.2.0.GA (build=200703010320)
java 1.5.0_11-b03
Here are the final files.
EchoService.wsdl (note the \<documentation\> tag near the bottom)
<?xml version="1.0" encoding="UTF-8"?>
| <definitions name='EchoService' targetNamespace='http://echo/' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://echo/' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
| <types>
| <xs:schema targetNamespace='http://echo/' version='1.0' xmlns:tns='http://echo/' xmlns:xs='http://www.w3.org/2001/XMLSchema'>
| <xs:element name='echo' type='tns:echo'/>
| <xs:element name='echoResponse' type='tns:echoResponse'/>
| <xs:complexType name='echo'>
| <xs:sequence>
| <xs:element minOccurs='0' name='arg0' type='xs:string'/>
| </xs:sequence>
| </xs:complexType>
| <xs:complexType name='echoResponse'>
| <xs:sequence>
| <xs:element minOccurs='0' name='return' type='xs:string'/>
| </xs:sequence>
| </xs:complexType>
| </xs:schema>
| </types>
| <message name='Echo_echo'>
| <part element='tns:echo' name='echo'/>
| </message>
| <message name='Echo_echoResponse'>
| <part element='tns:echoResponse' name='echoResponse'/>
| </message>
| <portType name='Echo'>
| <operation name='echo' parameterOrder='echo'>
| <input message='tns:Echo_echo'/>
| <output message='tns:Echo_echoResponse'/>
| </operation>
| </portType>
| <binding name='EchoBinding' type='tns:Echo'>
| <soap:binding style='document' transport='http://schemas.xmlsoap.org/soap/http'/>
| <operation name='echo'>
| <soap:operation soapAction=''/>
| <input>
| <soap:body use='literal'/>
| </input>
| <output>
| <soap:body use='literal'/>
| </output>
| </operation>
| </binding>
| <service name='EchoService'>
| <documentation>Congrats! You have published your own WSDL!</documentation>
| <port binding='tns:EchoBinding' name='EchoPort'>
| <soap:address location='REPLACE_WITH_ACTUAL_URL'/>
| </port>
| </service>
| </definitions>
web.xml (note <servlet-class> specifies the imple):
<?xml version="1.0" encoding="UTF-8"?>
|
| <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
| version="2.4">
|
| <servlet>
| <servlet-name>echo</servlet-name>
| <servlet-class>echo.EchoImpl</servlet-class>
| </servlet>
|
| <servlet-mapping>
| <servlet-name>echo</servlet-name>
| <url-pattern>/*</url-pattern>
| </servlet-mapping>
|
| </web-app>
Echo.java (note wsdlLocation added by hand to @WebService)
package echo;
|
| import javax.jws.WebMethod;
| import javax.jws.WebParam;
| import javax.jws.WebResult;
| import javax.jws.WebService;
| import javax.xml.ws.RequestWrapper;
| import javax.xml.ws.ResponseWrapper;
|
|
| /**
| * JBossWS Generated Source
| *
| * ...
| * JAX-WS Version: 2.0
| *
| */
| @WebService(name = "Echo", targetNamespace = "http://echo/", wsdlLocation="META-INF/wsdl/EchoService.wsdl")
| public interface Echo {
|
|
| /**
| *
| * @param arg0
| * @return
| * returns java.lang.String
| */
| @WebMethod
| @WebResult(targetNamespace = "")
| @RequestWrapper(localName = "echo", targetNamespace = "http://echo/", className = "echo.Echo_Type")
| @ResponseWrapper(localName = "echoResponse", targetNamespace = "http://echo/", className = "echo.EchoResponse")
| public String echo(
| @WebParam(name = "arg0", targetNamespace = "")
| String arg0);
|
| }
|
and finally EchoImpl.java (not the portName)
package echo;
|
| @javax.jws.WebService(endpointInterface="echo.Echo", portName="EchoPort")
| public class EchoImpl implements Echo
| {
| public String echo(String arg0)
| {
| return arg0;
| }
| }
And for completeness, the war structure
META-INF/
| META-INF/MANIFEST.MF
| META-INF/wsdl/
| META-INF/wsdl/EchoService.wsdl
| WEB-INF/
| WEB-INF/classes/
| WEB-INF/classes/echo/
| WEB-INF/classes/echo/Echo.class
| WEB-INF/classes/echo/EchoImpl.class
| WEB-INF/classes/echo/EchoResponse.class
| WEB-INF/classes/echo/Echo_Type.class
| WEB-INF/classes/echo/ObjectFactory.class
| WEB-INF/classes/echo/package-info.class
| WEB-INF/web.xml
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4031124#4031124
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4031124
19Â years, 1Â month
[JBoss Portal] - HOW t o get parameter (big5 code in taiwan)
by kevnlin
my portlet class
/*
* oper.java
*
* Created on 2007?3?15?, ?? 11:42
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package org.fedora;
import org.jboss.portlet.JBossActionRequest;
import org.jboss.portlet.JBossActionResponse;
import org.jboss.portal.api.node.event.PortalNodeEvent;
import org.jboss.portal.api.node.event.PortalNodeEventListener;
import org.jboss.portal.api.node.event.PortalNodeEventContext;
import org.jboss.portal.api.node.event.WindowActionEvent;
import org.jboss.portal.api.node.PortalNode;
import org.jboss.portal.WindowState;
import org.jboss.portlet.JBossPortlet;
import org.jboss.portlet.JBossRenderRequest;
import org.jboss.portlet.JBossRenderResponse;
import org.jboss.portal.api.node.PortalNode;
import org.jboss.portal.api.node.PortalNodeURL;
import javax.portlet.*;
import javax.portlet.PortletException;
import java.io.IOException;
import javax.portlet.PortletRequestDispatcher;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.gotdns.fedora.client.*;
import org.jboss.portal.common.util.CollectionBuilder;
import org.jboss.portal.identity.UserModule;
import org.jboss.portal.identity.User;
import org.jboss.portal.identity.RoleModule;
import org.jboss.portal.identity.Role;
import org.gotdns.fedora.client.*;
import org.jboss.portal.identity.IdentityException;
/**
*
* @author kevnlin
*/
public class oper extends JBossPortlet {
private static final String JSP_PATH = "/WEB-INF/jsp";
private org.gotdns.fedora.client.operationclient home;
/** Creates a new instance of oper */
private String oid="";
private String opname="";
private String opdesc="";
private String oplink="";
private String disable="";
private String opmode="";
public void processAction(JBossActionRequest req, JBossActionResponse resp) throws PortletException, PortletSecurityException, IOException
{
opmode= req.getParameter("opmode");
// if(opmode == null ){opmode="list";}
// resp.setProperty("opmode",opmode);
resp.setRenderParameter("opmode",opmode);
opname=req.getParameter("opname"); if(opname == null){opname="";}
opdesc=req.getParameter("opdesc"); if(opdesc == null){opdesc="";}
disable=req.getParameter("disable"); if(disable == null){disable="";}
oplink=req.getParameter("oplink"); if(oplink == null){oplink="";}
oid=req.getParameter("oid"); if(oid == null){oid="";}
resp.setRenderParameter("oid",oid);
System.out.println(opname);
// String tt=new String(opname.getBytes(),"utf8");
String tt="";
// tt=new String(tt.getBytes(),"utf-8");
// System.out.println(tt);
tt=new String(opname.getBytes("MS950"),"utf-8");
System.out.println(tt);
tt=new String(opname.getBytes("utf-8"),"MS950");
System.out.println(tt);
// System.out.println(new String(opname.getBytes("ms950"),"utf-8"));
// System.out.println(new String(opname.getBytes("utf-8"),"mf950"));
}
protected void doView(JBossRenderRequest req, JBossRenderResponse resp) throws IOException, PortletException
{ System.out.println(opname+"VIEW");
String opmode="";
opmode= req.getParameter("opmode");
if(opmode == null){opmode="";}
resp.setProperty("opmode",opmode);
resp.setContentType("text/html;charset=UTF-8");
javax.portlet.PortletRequestDispatcher pRD =null;
if(opmode.equals("list")){
pRD = this.getPortletContext().getRequestDispatcher( JSP_PATH + "/op/opview.jsp");
}else if(opmode.equals("view")){
pRD = this.getPortletContext().getRequestDispatcher( JSP_PATH + "/op/opdetail.jsp");
}else{
pRD = this.getPortletContext().getRequestDispatcher( JSP_PATH + "/op/opview.jsp");
}
pRD.include(req,resp);
}
protected void doEdit(JBossRenderRequest req, JBossRenderResponse resp) throws IOException, PortletException
{ System.out.println(opname+"EDIT");
oid=req.getParameter("oid"); if(oid == null){oid="";}
SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date opdate=new java.util.Date();
String tmp="";
tmp=formatter.format(opdate);
String opmode="";
opmode= req.getParameter("opmode");
System.out.println("opmode=" + opmode);
if(opmode == null){opmode="";}
resp.setProperty("opmode",opmode);
resp.setContentType("text/html;charset=UTF-8");
// resp.setContentType("text/html;charset=UTF-8");
javax.portlet.PortletRequestDispatcher pRD =null;
org.gotdns.fedora.client.operationclient home=new org.gotdns.fedora.client.operationclient();
if(opmode.equals("add")){
pRD = this.getPortletContext().getRequestDispatcher( JSP_PATH + "/op/opadd.jsp");
}
else if(opmode.equals("update")){
pRD = this.getPortletContext().getRequestDispatcher( JSP_PATH + "/op/opedit.jsp");
}
else if(opmode.equals("updateup")){
home.updateOperation(oid,opname,opdesc,oplink,disable);
pRD = this.getPortletContext().getRequestDispatcher( JSP_PATH + "/ref.jsp");
}
else if(opmode.equals("del")){
home.removeOperation(oid);
pRD = this.getPortletContext().getRequestDispatcher( JSP_PATH + "/ref.jsp");
}
else if(opmode.equals("addup")){
oid= sdf.format(opdate);
System.out.println(oid);
System.out.println(opname);
System.out.println(opdesc);
System.out.println(opdate); System.out.println(oplink); System.out.println(disable);
try{
home.insertOperation(oid,opname,opdesc,opdate,oplink,disable) ;
}
catch (Exception e){System.out.println(e.getMessage());}
pRD = this.getPortletContext().getRequestDispatcher( JSP_PATH + "/ref.jsp");
}
else{
pRD = this.getPortletContext().getRequestDispatcher( JSP_PATH + "/op/opview.jsp");
}
pRD.include(req,resp);
}
}
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4031119#4031119
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4031119
19Â years, 1Â month