9
votes

Différences majeures entre J2ee et C # /. Net lors du développement de services Web

Après avoir été principalement un gars .NET jusqu'à la création d'un nouvel emploi récemment; Je n'ai effectué que le développement de services Web et la consommation en C # /. Net. Cependant, je m'embarquons dans le voyage pour apprendre les instances de le faire sur la plate-forme J2EE, et je suis curieux quelles sont les principales différences dans ce type de développement spécifique.

Note: J'ai une connaissance de la langue Java à la console / niveau d'interface simple, mais pas beaucoup d'expérience avec "Comment mettre en place une architecture de service Web fonctionnelle" en l'utilisant.

Mise à jour: de grandes réponses jusqu'à présent, je voulais juste ajouter cependant que dans la structure de classe de service Web simple, ils ne semblent pas afficher trop de différences; Mais que diriez-vous de la perspective de la mise en place de la logique DB et de l'héberger en réalité - obtenir le service de fonctionnement et de travail / comment son interagit.


0 commentaires

3 Réponses :


4
votes

Je n'ai jamais essayé avant les services Web mais récemment. Et j'ai été émerveillé avec quelle simplicité est-elle en Java avec Jax-WS.

Voici un service Web p> xxx pré>

et c'est tout.
Si vous avez besoin d'une logique supplémentaire et de niveau comme des entités de DB, il est ajouté aussi simple que possible que je ne pouvais imaginer qu'avec EJB3. P>

Autant que je viens de voir la manière C # de définir le service Web de définition du service clientèle Il n'y a pas de grande différence à Tout. P>

    [WebService(... )]
    public class BusinessProcess : System.Web.Services.WebService
    {
        [WebMethod]
        public HelloWorldObject helloWorld()
        {
            return new HelloWorldObject("Earth");
        }
    }


0 commentaires

3
votes

Je suggérerais de prendre le apache cxf strong> framework pour une rotation. Je l'ai sélectionné pour un projet majeur ici au travail et il fonctionne bien! Strong> Quels avantages cela vous donne-t-il sur EJB3? Hmmm ... Je ne pouvais pas dire sauf que j'ai utilisé CXF, tandis que EJB3 n'a jamais été dans ma cuisine (référence obscure des acclamations).

avec CXF Le code n'est pas beaucoup plus que quelques annotations ici et là . Il utilise des annotations standard Jaxb pour les objets de marshalling. Via la configuration, il est également possible de placer des intercepteurs avant et après les appels de services Web si vous souhaitez effectuer la journalisation, etc. p> xxx pré>

Notez que le @webparam Code> L'annotation est facultative, mais il semble plus agréable dans la WSDL que des trucs comme arg0 code>. Oui, il peut y avoir un peu de configuration XML pour aller avec cela: P>

<!-- the #userService is a reference to a Spring bean defined elsewhere --> 
<jaxws:endpoint id="userWS" implementor="#userService"
    implementorClass="com.blah.blah.blah.UserServiceImpl"
    address="/UserService" />


0 commentaires

9
votes

Bien qu'il n'y ait qu'un seul moyen de faire des services Web à l'aide de la technologie Microsoft, les services Web Java sont très fragmentés. Voir Cette question par exemple. La plupart des cadres peuvent effectuer à la fois le contrat - d'abord (Démarrer à partir du fichier WSDL) et le code Web de la première (Démarrer à partir de code source). Chaque cadre a également organisé le service Web. Axis2 Framework Par exemple déploie les services Web en tant que fichiers AAR dans l'application Web Axis2. D'autres cadres déploient des services Web dans un fichier de guerre (Axis2 peut également faire).

Pour les personnes venant de .net à Java, il est toujours un problème de choisir un cadre de services Web. L'intégration des IDE n'est également pas si bonne que celle avec Visual Studio.

Si vous êtes nouveau dans J2EE, je recommande d'examiner le cadre de printemps. printemps possède un sous-projet (Spring-WS) qui vous permet de créer des services Web sous contrat-First. L'intégration avec la logique DB et l'application est beaucoup plus facile avec une structure d'injection de dépendance telle que le printemps. Apache CXF s'intègre également bien avec le ressort.


4 commentaires

Certains très bons points là-bas - je ne me donnerai pas la peine de répondre à cela maintenant! Bon conseil.


Je n'ai jamais essayé le printemps. Est-il plus facile d'utiliser le ressort pour la logique puis ejb3?


La plupart diront que le printemps vaut mieux que EJB3. Il est également plus polyvalent, car il ne nécessite pas de serveur d'applications mettant en œuvre la norme Jee. L'EJB3 n'est pas mauvais non plus, mais je recommande d'investir votre temps au printemps.


J'ai confronté le même problème lorsque je suis passé de .net à Java. Mon expérience personnelle étant Apache-CXF est beaucoup plus proche de la manière de .NET de faire des choses que les Springws ou l'axe. Il a une annotation similaire comme @webservice et un fichier de configuration similaire définissant les points finaux. J'ai donc pu construire mon premier service clientèle Java de travail à Apache-CXF