[JBossWS] - java-wsdl conversion for Custom Exception
by rt_s
Below is the scaled down version of a service that i am trying to develop. My service throws a custom exception. However, i get an error when trying to generate a WSDL for this SEI.
SEI
| package com.testservice;
|
| import java.rmi.Remote;
| import java.rmi.RemoteException;
|
| import com.testservice.exception.MyCustomException;
|
| public interface ExceptionService extends Remote
| {
| public void throwCustomException() throws MyCustomException, RemoteException;
| }
|
MyCustomException class
| package com.testservice.exception;
|
| public class MyCustomException extends Exception
| {
| private int errorCode;
|
| private String customMsg;
|
| private String[] arr;
|
| public MyCustomException()
| {
| super();
| }
|
| public MyCustomException(int errorCode, String customMsg, String[] arr) {
| super();
|
| this.errorCode = errorCode;
| this.customMsg = customMsg;
| this.arr = arr;
| }
|
| public String[] getArr() {
| return arr;
| }
|
| public void setArr(String[] arr) {
| this.arr = arr;
| }
|
| public String getCustomMsg() {
| return customMsg;
| }
|
| public void setCustomMsg(String customMsg) {
| this.customMsg = customMsg;
| }
|
| public int getErrorCode() {
| return errorCode;
| }
|
| public void setErrorCode(int errorCode) {
| this.errorCode = errorCode;
| }
|
| }
|
ANT for generating stubs
| <target name="generate_stubs" depends="prepare">
| <taskdef name="wstools" classname="org.jboss.ws.tools.ant.wstools">
| <classpath refid="client.path"/>
| </taskdef>
| <wstools dest="${configs.dir}" config="${basedir}/wstools-config.xml"/>
| </target>
|
WSTools Config XML
| <configuration xmlns="http://www.jboss.org/jbossws-tools">
| <java-wsdl>
| <service name="ExceptionService" style="rpc" endpoint="com.testservice.ExceptionService"/>
| <namespaces target-namespace="http://com.testservice" type-namespace="http://com.testservice/types"/>
| <mapping file="jaxrpc-mapping.xml"/>
| <webservices servlet-link="ExceptionService"/>
| </java-wsdl>
| </configuration>
|
And the error i get on running the ANT is ...
| generate_stubs:
| [wstools] log4j:WARN No appenders could be found for logger (org.jboss.ws.tools.WSTools).
| [wstools] log4j:WARN Please initialize the log4j system properly.
| [wstools] java.lang.IllegalArgumentException: Could not locate a constructor with the following types: class com.testservice.exception.MyCustomException [class [Ljava.lang.String;, class java.lang.String, int]
| [wstools] at org.jboss.ws.tools.schema.SchemaTypeCreator.getComplexTypeForJavaException(SchemaTypeCreator.java:722)
| [wstools] at org.jboss.ws.tools.schema.SchemaTypeCreator.getType(SchemaTypeCreator.java:268)
| [wstools] at org.jboss.ws.tools.schema.SchemaTypeCreator.generateType(SchemaTypeCreator.java:133)
| [wstools] at org.jboss.ws.tools.JavaToXSD.generateForSingleType(JavaToXSD.java:109)
| [wstools] at org.jboss.ws.tools.helpers.JavaToWSDLHelper.generateType(JavaToWSDLHelper.java:555)
| [wstools] at org.jboss.ws.tools.helpers.JavaToWSDLHelper.generateTypesForXSD(JavaToWSDLHelper.java:178)
| [wstools] at org.jboss.ws.tools.JavaToWSDL11.handleJavaToWSDLGeneration(JavaToWSDL11.java:241)
| [wstools] at org.jboss.ws.tools.JavaToWSDL11.generate(JavaToWSDL11.java:168)
| [wstools] at org.jboss.ws.tools.JavaToWSDL.generate(JavaToWSDL.java:318)
| [wstools] at org.jboss.ws.tools.helpers.ToolsHelper.handleJavaToWSDLGeneration(ToolsHelper.java:122)
| [wstools] at org.jboss.ws.tools.WSTools.process(WSTools.java:129)
| [wstools] at org.jboss.ws.tools.WSTools.generate(WSTools.java:119)
| [wstools] at org.jboss.ws.tools.ant.wstools.execute(wstools.java:103)
| [wstools] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
| [wstools] at org.apache.tools.ant.Task.perform(Task.java:364)
| [wstools] at org.apache.tools.ant.Target.execute(Target.java:341)
| [wstools] at org.apache.tools.ant.Target.performTasks(Target.java:369)
| [wstools] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
| [wstools] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
| [wstools] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
| [wstools] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
| [wstools] at org.apache.tools.ant.Main.runBuild(Main.java:668)
| [wstools] at org.apache.tools.ant.Main.startAnt(Main.java:187)
| [wstools] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
| [wstools] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
|
(I have a JBoss-4.0.4 setup running on Java5)
I can solve this problem if i change the order of parameters to parameterized constructor of MyCustomException as follows:
| public MyCustomException(String[] arr, String customMsg, int errorCode) {
| super();
|
| this.errorCode = errorCode;
| this.customMsg = customMsg;
| this.arr = arr;
| }
|
I would like to know
1) Is this an expected behavior or bug?
2) If it is an expected behavior, are there any guidelines for the order in which parameters to a parameterized constructor are passed?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3957660#3957660
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3957660
19 years, 9 months
[JBoss Seam] - Re: Ajax¤JSF with Seam
by tobad
Are you using Embedded Tomcat or JBoss?
I'm using Tomcat with the Embedded Container and it works very well.
This is my config
Web.xml (including tomahawk code)
Notice that I'am using the nekohtml based FastFilter for Ajax4Jsf
This means that you need to download NekoHtml from http://java-source.net/open-source/html-parsers/nekohtml
and probably Xerces
| <?xml version="1.0" encoding="UTF-8"?>
| <web-app version="2.4" 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">
|
| <!-- Seam -->
|
| <listener>
| <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
| </listener>
|
| <!-- JSF -->
| <context-param>
| <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
| <param-value>client</param-value>
| </context-param>
|
| <context-param>
| <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
| <param-value>.html</param-value>
| </context-param>
|
| <context-param>
| <param-name>facelets.DEVELOPMENT</param-name>
| <param-value>true</param-value>
| </context-param>
|
| <context-param>
| <param-name>facelets.LIBRARIES</param-name>
| <param-value>/WEB-INF/tomahawk.taglib.xml</param-value>
| </context-param>
|
| <context-param>
| <param-name>org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION</param-name>
| <param-value>50</param-value>
| </context-param>
|
| <servlet>
| <servlet-name>Faces Servlet</servlet-name>
| <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
| <load-on-startup>1</load-on-startup>
| </servlet>
|
| <!-- Faces Servlet Mapping -->
|
| <servlet-mapping>
| <servlet-name>Faces Servlet</servlet-name>
| <url-pattern>*.jsf</url-pattern>
| </servlet-mapping>
|
| <servlet>
| <servlet-name>Seam Remoting</servlet-name>
| <servlet-class>org.jboss.seam.remoting.SeamRemotingServlet</servlet-class>
| </servlet>
|
| <servlet-mapping>
| <servlet-name>Seam Remoting</servlet-name>
| <url-pattern>/seam/remoting/*</url-pattern>
| </servlet-mapping>
|
| <!-- Seam filters -->
| <!-- Ajax4JSF Initial parameters -->
| <filter>
| <display-name>Ajax4jsf Filter</display-name>
| <filter-name>ajax4jsf</filter-name>
| <filter-class>org.ajax4jsf.FastFilter</filter-class>
| </filter>
| <filter-mapping>
| <filter-name>ajax4jsf</filter-name>
| <url-pattern>*.jsf</url-pattern>
| </filter-mapping>
| <filter-mapping>
| <filter-name>ajax4jsf</filter-name>
| <url-pattern>/faces/*</url-pattern>
| </filter-mapping>
|
| <context-param>
| <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
| <param-value>com.sun.facelets.FaceletViewHandler</param-value>
| </context-param>
| <context-param>
| <param-name>org.ajax4jsf.Filter</param-name>
| <param-value>org.ajax4jsf.FastFilter</param-value>
| </context-param>
|
|
|
| <!-- Propagate conversations across redirects -->
| <filter>
| <filter-name>Seam Redirect Filter</filter-name>
| <filter-class>org.jboss.seam.servlet.SeamRedirectFilter</filter-class>
| </filter>
|
| <filter-mapping>
| <filter-name>Seam Redirect Filter</filter-name>
| <url-pattern>*.jsf</url-pattern>
| </filter-mapping>
|
| <filter>
| <filter-name>Seam Servlet Filter</filter-name>
| <filter-class>org.jboss.seam.servlet.SeamServletFilter</filter-class>
| </filter>
|
| <filter-mapping>
| <filter-name>Seam Servlet Filter</filter-name>
| <url-pattern>/servlets/*</url-pattern>
| </filter-mapping>
|
| <!-- MyFaces -->
| <listener>
| <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
| </listener>
|
| <filter>
| <filter-name>ExtensionsFilter</filter-name>
| <filter-class>
| org.apache.myfaces.component.html.util.ExtensionsFilter
| </filter-class>
| <init-param>
| <param-name>uploadMaxFileSize</param-name>
| <param-value>10m</param-value>
| </init-param>
| <init-param>
| <param-name>uploadThresholdSize</param-name>
| <param-value>100k</param-value>
| </init-param>
| </filter>
| <filter-mapping>
| <filter-name>ExtensionsFilter</filter-name>
| <servlet-name>Faces Servlet</servlet-name>
| </filter-mapping>
| <filter-mapping>
| <filter-name>ExtensionsFilter</filter-name>
| <url-pattern>*.jsf</url-pattern>
| </filter-mapping>
| <filter-mapping>
| <filter-name>ExtensionsFilter</filter-name>
| <url-pattern>/faces/*</url-pattern>
| </filter-mapping>
| </web-app>
|
faces-config.xml
| <?xml version="1.0" encoding="UTF-8"?>
| <!DOCTYPE faces-config
| PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
| "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
|
| <faces-config>
|
| <converter>
| <converter-id>org.joda.ext.jsf.converter.DateTime</converter-id>
| <converter-class>org.joda.ext.jsf.converter.DateTimeConverter</converter-class>
| </converter>
|
| <lifecycle>
| <phase-listener>org.jboss.seam.jsf.SeamExtendedManagedPersistencePhaseListener</phase-listener>
| </lifecycle>
|
| </faces-config>
|
tomahawk.taglib.xml
| <?xml version="1.0"?>
| <!DOCTYPE facelet-taglib PUBLIC
| "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
| "http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
|
| <facelet-taglib>
| <namespace>http://myfaces.apache.org/tomahawk</namespace>
| <tag>
| <tag-name>aliasBean</tag-name>
| <component>
| <component-type>org.apache.myfaces.AliasBean</component-type>
| <renderer-type>org.apache.myfaces.AliasBean</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>buffer</tag-name>
| <component>
| <component-type>org.apache.myfaces.Buffer</component-type>
| <renderer-type>org.apache.myfaces.Buffer</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>checkbox</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlCheckbox</component-type>
| <renderer-type>org.apache.myfaces.Checkbox</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlCheckboxTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>collapsiblePanel</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlCollapsiblePanel</component-type>
| <renderer-type>org.apache.myfaces.CollapsiblePanel</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlCollapsiblePanelTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>column</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlColumn</component-type>
| </component>
| </tag>
| <tag>
| <tag-name>columns</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlColumns</component-type>
| </component>
| </tag>
| <tag>
| <tag-name>commandButton</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlCommandButton</component-type>
| </component>
| </tag>
| <tag>
| <tag-name>commandLink</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlCommandLink</component-type>
| <renderer-type>org.apache.myfaces.Link</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>commandNavigation</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlCommandNavigation</component-type>
| <renderer-type>javax.faces.Link</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>commandSortHeader</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlCommandSortHeader</component-type>
| <renderer-type>org.apache.myfaces.SortHeader</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlCommandSortHeaderTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>dataList</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlDataList</component-type>
| <renderer-type>org.apache.myfaces.List</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlDataListTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>dataScroller</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlDataScroller</component-type>
| <renderer-type>org.apache.myfaces.DataScroller</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlDataScrollerTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>dataTable</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlDataTable</component-type>
| <renderer-type>org.apache.myfaces.Table</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlDataTableTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>date</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlInputDate</component-type>
| <renderer-type>org.apache.myfaces.Date</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>div</tag-name>
| <component>
| <component-type>org.apache.myfaces.Div</component-type>
| </component>
| </tag>
| <tag>
| <tag-name>graphicImage</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlGraphicImage</component-type>
| <renderer-type>org.apache.myfaces.Image</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>htmlTag</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlTag</component-type>
| <renderer-type>org.apache.myfaces.HtmlTagRenderer</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>inputCalendar</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlInputCalendar</component-type>
| <renderer-type>org.apache.myfaces.Calendar</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlInputCalendarTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>inputDate</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlInputDate</component-type>
| <renderer-type>org.apache.myfaces.Date</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>inputFileUpload</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlInputFileUpload</component-type>
| <renderer-type>org.apache.myfaces.FileUpload</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlInputFileUploadTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>inputHidden</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlInputHidden</component-type>
| <renderer-type>javax.faces.Hidden</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>inputHtml</tag-name>
| <component>
| <component-type>org.apache.myfaces.InputHtml</component-type>
| <renderer-type>org.apache.myfaces.InputHtml</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>inputSecret</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlInputSecret</component-type>
| <renderer-type>org.apache.myfaces.Secret</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlInputSecretTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>inputText</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlInputText</component-type>
| <renderer-type>org.apache.myfaces.Text</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlInputTextTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>inputTextarea</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlInputTextarea</component-type>
| <renderer-type>org.apache.myfaces.Textarea</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlInputTextareaTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>inputTextHelp</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlInputTextHelp</component-type>
| <renderer-type>org.apache.myfaces.TextHelp</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlInputTextHelpTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>jscookMenu</tag-name>
| <component>
| <component-type>org.apache.myfaces.JSCookMenu</component-type>
| <renderer-type>org.apache.myfaces.JSCookMenu</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>jsValueChangeListener</tag-name>
| <component>
| <component-type>org.apache.myfaces.JsValueChangeListener</component-type>
| <renderer-type>org.apache.myfaces.JsValueChangeListener</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>jsValueSet</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlJsValueSet</component-type>
| <renderer-type>org.apache.myfaces.JsValueSet</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>layout</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlPanelLayout</component-type>
| <renderer-type>org.apache.myfaces.Layout</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>message</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlMessage</component-type>
| <renderer-type>org.apache.myfaces.Message</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>messages</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlMessages</component-type>
| <renderer-type>org.apache.myfaces.Messages</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>navigationMenuItem</tag-name>
| <component>
| <component-type>org.apache.myfaces.NavigationMenuItem</component-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlNavigationMenuItemTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>navigationMenuItems</tag-name>
| <component>
| <component-type>org.apache.myfaces.NavigationMenuItem</component-type>
| </component>
| </tag>
| <tag>
| <tag-name>newspaperTable</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlNewspaperTable</component-type>
| <renderer-type>org.apache.myfaces.HtmlNewspaperTable</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>panelGrid</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlPanelGrid</component-type>
| <renderer-type>javax.faces.Grid</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlPanelGridTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>panelGroup</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlPanelGroup</component-type>
| <renderer-type>javax.faces.Group</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlPanelGroupTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>panelNavigation</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlPanelNavigation</component-type>
| <renderer-type>org.apache.myfaces.Navigation</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>panelStack</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlPanelStack</component-type>
| <renderer-type>org.apache.myfaces.PanelStack</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>panelTab</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlPanelTab</component-type>
| <renderer-type>javax.faces.Group</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>panelTabbedPane</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlPanelTabbedPane</component-type>
| <renderer-type>org.apache.myfaces.TabbedPane</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlPanelTabbedPaneTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>popup</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlPopup</component-type>
| <renderer-type>org.apache.myfaces.Popup</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlPopupTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>radio</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlRadio</component-type>
| <renderer-type>org.apache.myfaces.Radio</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlRadioTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>saveState</tag-name>
| <component>
| <component-type>org.apache.myfaces.SaveState</component-type>
| </component>
| </tag>
| <tag>
| <tag-name>selectBooleanCheckbox</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlSelectBooleanCheckbox</component-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlSelectBooleanCheckboxTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>selectManyCheckbox</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlSelectManyCheckbox</component-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlSelectManyCheckboxTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>selectManyListbox</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlSelectManyListbox</component-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlSelectManyListboxTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>selectManyMenu</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlSelectManyMenu</component-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlSelectManyMenuTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>selectOneCountry</tag-name>
| <component>
| <component-type>org.apache.myfaces.SelectOneCountry</component-type>
| <renderer-type>org.apache.myfaces.SelectOneCountry</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>selectOneLanguage</tag-name>
| <component>
| <component-type>org.apache.myfaces.SelectOneLanguage</component-type>
| <renderer-type>org.apache.myfaces.SelectOneLanguage</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>selectOneListbox</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlSelectOneListbox</component-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlSelectOneListboxTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>selectOneMenu</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlSelectOneMenu</component-type>
| <renderer-type>org.apache.myfaces.Menu</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlSelectOneMenuTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>selectOneRadio</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlSelectOneRadio</component-type>
| <handler-class>com.skalasoft.facelets.tags.generated.HtmlSelectOneRadioTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>stylesheet</tag-name>
| <component>
| <component-type>org.apache.myfaces.Stylesheet</component-type>
| <renderer-type>org.apache.myfaces.Stylesheet</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>swapImage</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlSwapImage</component-type>
| <renderer-type>org.apache.myfaces.SwapImage</renderer-type>
| </component>
| </tag>
| <tag>
| <tag-name>tree2</tag-name>
| <component>
| <component-type>org.apache.myfaces.HtmlTree2</component-type>
| <renderer-type>org.apache.myfaces.HtmlTree2</renderer-type>
| <handler-class>com.skalasoft.facelets.tags.generated.TreeTagHandler</handler-class>
| </component>
| </tag>
| <tag>
| <tag-name>validateCreditCard</tag-name>
| <validator>
| <validator-id>org.apache.myfaces.validator.CreditCard</validator-id>
| </validator>
| </tag>
| <tag>
| <tag-name>validateEmail</tag-name>
| <validator>
| <validator-id>org.apache.myfaces.validator.Email</validator-id>
| </validator>
| </tag>
| <tag>
| <tag-name>validateEqual</tag-name>
| <validator>
| <validator-id>org.apache.myfaces.validator.Equal</validator-id>
| </validator>
| </tag>
| <tag>
| <tag-name>validateRegExpr</tag-name>
| <validator>
| <validator-id>org.apache.myfaces.validator.RegExpr</validator-id>
| </validator>
| </tag>
| </facelet-taglib>
|
And then I import Ajax4Jsf into my page with
| <html xmlns="http://www.w3.org/1999/xhtml"
| xmlns:ui="http://java.sun.com/jsf/facelets"
| xmlns:h="http://java.sun.com/jsf/html"
| xmlns:f="http://java.sun.com/jsf/core"
| xmlns:s="http://jboss.com/products/seam/taglib"
| xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
| xmlns:t="http://myfaces.apache.org/tomahawk">
|
If you have any more questions feel free to send me an email or ask here for everyones benefit.
Cheers
Tobias
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3957651#3957651
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3957651
19 years, 9 months