问题描述
现在项目有个任务,需要写一个接口供其他厂家调用,工程是用普通的javaweb工程,需要新建个webservice工程吗?有木有大神来指点下,求指导啊
解决方案
解决方案二:
解决方案三:
1、普通类就可以了,不要放在包中(也可以放进包中)2、下载axis2,并把axis2放在tomcat_homewebapps下,再在axis2WEB-INF建立Pojo文件夹,并把1中所编译的class放进该文件夹下3、启动tomcat,访问http://localhost:8080/axis2/services/listServices,你写的接口就应该会出现了
解决方案四:
如何你将类放在包中,就不能按上述2步骤来了,你需要打成**.aar包放进axis2WEB-INFservices下
解决方案五:
引用2楼yufengdxw的回复:
1、普通类就可以了,不要放在包中(也可以放进包中)2、下载axis2,并把axis2放在tomcat_homewebapps下,再在axis2WEB-INF建立Pojo文件夹,并把1中所编译的class放进该文件夹下3、启动tomcat,访问http://localhost:8080/axis2/services/listServices,你写的接口就应该会出现了
能部署到weblogic上吗?
解决方案六:
建议使用CXF框架,发布服务的步骤是第一步:<servlet><servlet-name>cxfServlet</servlet-name><servlet-class>org.apache.cxf.transport.servlet.CXFNonSpringServle</servlet-class><!--如果使用了spring,则使用-CXFServlet-></servlet><servlet-mapping><servlet-name>cxfServlet</servlet-name><url-pattern>/services/*</url-pattern></servlet-mapping>
将上面信息配置到web.xml中第二步:@WebServicepublicinterfaceSimpleWebservice{publicStringsayHello(Stringname);}
publicclassSimpleWebserviceImplimplementsSimpleWebservice{/*(non-Javadoc)*@seeorg.jbeer.sample.bean.service.SimpleWebservice#sayHello(java.lang.String)*/@OverridepublicStringsayHello(Stringname){return"hello"+name;}}
第三步:JaxWsServerFactoryBeanfactory=newJaxWsServerFactoryBean();factory.setAddress(“SimpleWebservice”);factory.setServiceBean(newSimpleWebserviceImpl());factory.setServiceClass(SimpleWebservice.class);factory.create();
如果你当前项目使用了spring,那么使用起来将会更简单了,直接通过spring配置,就可以发布一个服务了。具体你可以百度一下springcxf
解决方案七:
直接定义一个借口罗使用注释方法将服务段的信息@WebService注释中例如:以下代码:packageorg.jsoso.jws.server;importjava.util.ArrayList;importjavax.jws.WebMethod;importjavax.jws.WebParam;importjavax.jws.WebResult;importjavax.jws.WebService;importjavax.jws.WebParam.Mode;importjavax.jws.soap.SOAPBinding;/*提供WebService服务的类*/@WebService(name="Example",targetNamespace="http://www.jsoso.com/wstest",serviceName="Example")@SOAPBinding(style=SOAPBinding.Style.RPC)publicclassExample{privateArrayList<Person>persons=newArrayList<Person>();;/****返回一个字符串*@paramuserName*@return*/@WebMethod(operationName="toSayHello",action="sayHello",exclude=false)@WebResult(name="returnWord")//自定义该方法返回值在WSDL中相关的描述publicStringsayHello(@WebParam(name="userName")StringuserName){return"Hello:"+userName;}/***webservices方法的返回值与参数的类型不能为接口*@paramperson*@return*@throwsHelloException*/@WebMethod(operationName="sayHello",action="sayHello")@WebResult(partName="personList")publicPerson[]sayHello(@WebParam(partName="person",mode=Mode.IN)Personperson,StringuserName)throwsHelloException{if(person==null||person.getName()==null){thrownewHelloException("说hello出错,对像为空。。");}System.out.println(person.getName()+"对"+userName+"说:Hello,我今年"+person.getAge()+"岁");persons.add(person);returnpersons.toArray(newPerson[0]);}}
解决方案八:
jws是JDK定义的webservice标准,基于SOAP的,还有JSR基于REST的,都可以通过注解实现如果考虑开源框架,Asix和xfire是不错的选择
解决方案九:
解决方案十:
用过XFire,用myeclipse创建还比较好用,你可以试试。