Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带字符串限制的WSDL生成_Java_Wsdl - Fatal编程技术网

Java 带字符串限制的WSDL生成

Java 带字符串限制的WSDL生成,java,wsdl,Java,Wsdl,我在这样的类中有一个Getter/Setter方法: public class milestone { String milestoneType; public String getMilestoneType() { return milestoneType; } public void setMilestoneType(String milestoneType) {

我在这样的类中有一个Getter/Setter方法:

 public class milestone { 
     String milestoneType; 
     public String getMilestoneType() 
       { 
             return milestoneType; 
       } 
     public void setMilestoneType(String milestoneType)  
       {     
            this.milestoneType = milestoneType; 
       }
    }
对于这个在weblogic服务器帮助下生成的WSDL,如:

    <xs:complexType name="MileStone">
   <xs:sequence>
   <xs:element minOccurs="1" name="MilestoneType" nillable="true" type="xs:string" /> 
    </xs:sequence>
  </xs:complexType>

现在我需要基于两个值来限制milestoneType。我的意思是,这将只允许2个值,需要限制除这2个值之外的其他值

如何为此更改getter/setter类?请帮忙


提前感谢

使用一个只包含两个您希望允许的值的
枚举
,如下所示:

public enum MilestoneType {
    PRECOMMIT,
    POSTCOMMIT
}
public class Milestone {
    private MilestoneType milestoneType; 
    public MilestoneType getMilestoneType()  { 
        return milestoneType; 
    } 
    public void setMilestoneType(MilestoneType milestoneType) {     
        this.milestoneType = milestoneType; 
    }
}
接下来,您需要将
里程碑
类更改为使用此类型,而不是
字符串
,如下所示:

public enum MilestoneType {
    PRECOMMIT,
    POSTCOMMIT
}
public class Milestone {
    private MilestoneType milestoneType; 
    public MilestoneType getMilestoneType()  { 
        return milestoneType; 
    } 
    public void setMilestoneType(MilestoneType milestoneType) {     
        this.milestoneType = milestoneType; 
    }
}

public enum milestoneType{PRECOMMIT,POSTCOMMIT}public String getMilestoneType(){return milestoneType;}public void setMilestoneType(String milestoneType){this.milestoneType=milestoneType;}仍然没有对WSDL进行更改..这是因为从WSDL的角度看,枚举是不可见的,您需要修改该方法以获取/设置milestoneType而不是字符串。已进行更改。在eclipse中生成时出现错误[error]-JWS上不支持枚举类型:com.verizon.provctl.deliverymanager.model.milestoneorderTM$MilestoneType[jwsc]D:\DM\May\DM_2013\projects\DM war\src\com\verizon\provctl\deliverymanager\DTMMilestone.java 16:42[jwsc][警告]-return-on方法retrieveOrderMilestoneFordtm中使用的com.verizon.provctl.deliverymanager.model.MileStoneOrderDTM$MilestoneType类型没有默认构造函数,可能无法绑定到XML。根据错误消息,我猜您使用的是某种Weblogic插件。这是Ant任务还是Maven插件在工作?您可能希望查看正在生成的绑定的
类型的配置。检查问题,了解一些方向。