Hi, my name is Brett, and my company is pretty new to java web services, but we
need to use them to communicate between PowerBuilder and EJB3.
As far as I can tell, it looks like the annotations from the
javax.xml.bind.annotation are being completely ignored in our deployed web
services. Below is an example:
The web service class...
| package com.nsighttel.ejb.services.validation.creditcard;
|
| import java.io.Serializable;
|
| import javax.ejb.Stateless;
| import javax.jws.WebMethod;
| import javax.jws.WebParam;
| import javax.jws.WebService;
| import javax.jws.soap.SOAPBinding;
|
| import com.nsighttel.domain.MonthYearWS;
|
| @Stateless
| @WebService
| @SOAPBinding(style = SOAPBinding.Style.RPC, parameterStyle =
SOAPBinding.ParameterStyle.WRAPPED)
| public class CreditCardVerificationServiceWS implements Serializable {
| private static final long serialVersionUID = 1L;
|
| @WebMethod
| public int isValid(
| @WebParam(name = "cardExp")MonthYearWS cardExpWS
| ){
| return 1;
| }
|
| }
|
And the class for the WebParam...
| package com.nsighttel.domain;
|
| import java.io.Serializable;
| import javax.xml.bind.annotation.XmlAccessorType;
| import javax.xml.bind.annotation.XmlTransient;
| import javax.xml.bind.annotation.XmlAccessType;
|
| @XmlAccessorType(XmlAccessType.FIELD)
| public class MonthYearWS implements Serializable {
| private static final long serialVersionUID = 1L;
| private Boolean isNull;
| private Integer month;
| private Integer year;
| @XmlTransient private MonthYear obj;
|
|
| public MonthYearWS(Boolean isNull, Integer month, Integer year) {
| this.isNull = isNull;
| this.month = month;
| this.year = year;
| if (isNull == null || !isNull){
| obj = new MonthYear(month,year);
| }
| }
|
| public Boolean getIsNull() {
| return isNull;
| }
|
| public void setIsNull(Boolean isNull) {
| this.isNull = isNull;
| }
|
| public Integer getMonth() {
| return month;
| }
|
| public void setMonth(Integer month) {
| this.month = month;
| }
|
| public Integer getYear() {
| return year;
| }
|
| public void setYear(Integer year) {
| this.year = year;
| }
|
| @XmlTransient
| public MonthYear getObj(){
| return obj;
| }
|
| public void setObj(MonthYear obj){
| this.obj = obj;
| }
| }
|
No matter what annotations I use, I get isNull, month, year, and obj all in my
WSDL file for the above web service. The @XmlTransient annotation on the
getObj() function is not being honored, as I am still getting obj in the WSDL
file. Furthermore, if I take away all of the public getter functions, then I
get no elements in my WSDL file. Therefore, the
@XmlAccessorType(XmlAccessType.FIELD) is not being honored either.
I have tried a few other annotations from the javax.xml.bind.annotation
package, but none of them appear to be working either.
Could someone please clue me in to what I may be doing wrong? Does Jboss not
support these annotations? Or maybe the annotations do not apply to web
services?
Any help is greatly appreciated.
Thanks!
-Brett Birschbach
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3998406#3998406
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3998406
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user